Skip to main content

Featured post

XM Cloud content sync from prod to uat or UAT to prod step by step

When working with Sitecore, it’s common to need content synchronization across environments. Today, I’ll walk you through the steps to sync content from Production to UAT/TEST and vice versa. Steps to Follow 1. Set Up Your Workspace Create a folder on your computer where you will manage the script files and exported data. Open the folder path in PowerShell to begin scripting. We need to run some scripts in PowerShell to update the folder with the basic requirements for syncing content. PS C:\Soft\ContentSync> dotnet new tool-manifest PS C:\Soft\ContentSync> dotnet nuget add source -n Sitecore https://nuget.sitecore.com/resources/v3/index.json PS C:\Soft\ContentSync> dotnet tool install Sitecore.CLI PS C:\Soft\ContentSync> dotnet sitecore cloud login If the above error occurs, you will need to run a different command to resolve the issue. PS C:\Soft\ContentSync> dotnet sitecore init now, Again run above command to open and authenticate with XM Cloud. It will be there a...

Homework 3.1 MongoDB for .Net Development

MongoDB Homework 3.1 for the .Net Development is given below step by step.

Step1 :Download student.json from Download handout which is in homework url.

Use the below command to drop and import new data of student in MongoDB by using mongoimport command.

mongoimport --drop -d school -c students students.json

There should be two hundred record in the student collection. First check the data which is correctly imported or not.
see below command which help to find data in MongoDB collections

use school
db.students.count()

Correct output of count will be two hundred.

Now we need to find the student with highest average in the class . Use below query to get answer.

db.students.aggregate( [
  { '$unwind': '$scores' },
  {
    '$group':
    {
      '_id': '$_id',
      'average': { $avg: '$scores.score' }
    }
  },
  { '$sort': { 'average' : -1 } },
  { '$limit': 1 } ] )

You will get the out from the above query is : 13  .

So that the final answer of this homework is 13.

Now let's discuss to get same result through .net application.

I am going to write c# program code to complete the above process. see below code which help you to get knowledge to write code in C# in your project.

Make sure you have added mongo driver in your project otherwise it will not work.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;

namespace Playground
{
  class Program
  {
    static void Main(string[] args)
    {
      MainAsync(args).Wait();
      Console.ReadKey();
    }

    static async Task MainAsync(string[] args)
    {
      var client = new MongoClient();
      var db = client.GetDatabase("m101");
      var collection = db.GetCollection<Student>("hw31");

      await collection.Find(new BsonDocument())
        .ForEachAsync(async student =>
        {
          var lowestHomeworkGrade = student.Grades
            .Where(x => x.Type == GradeType.homework)
            .OrderBy(x => x.Score)
            .First();

         
          await collection.UpdateOneAsync(
            filter: x => x.Id == student.Id,
            update: Builders<Student>.Update.PullFilter(
              field: x => x.Grades,
              filter: score => score.Score == lowestHomeworkGrade.Score && score.Type == GradeType.homework));

        
        });

      var result = await collection.Aggregate()
        .Unwind(x => x.Grades)
        .Group(new BsonDocument
        {
          { "_id", "$_id" },
          { "average", new BsonDocument("$avg", "$scores.score") }
        })
        .Sort(new BsonDocument("average", -1))
        .FirstAsync();

      Console.WriteLine(result);
    }

    private class Student
    {
      public int Id { get; set; }

      [BsonElement("name")]
      public string Name { get; set; }

      [BsonElement("scores")]
      public List<Grade> Grades { get; set; }
    }

    private class Grade
    {
      [BsonElement("type")]
      [BsonRepresentation(BsonType.String)]
      public GradeType Type { get; set; }

      [BsonElement("score")]
      public double Score { get; set; }
    }

    public enum GradeType
    {
     
      homework,
      exam,
      quiz
    }
  }
}






Comments

Popular posts from this blog

How to create properties and use it with Generic class

Here, I have created properties in GetDetails class and use to get large amount of data which comes from database . see below code i have added lots of data in dataset make loop to add all data in list by help of properties . This is best to have good programmer. Follow this type of technique to get data. List<Details > Details = new List<Details >();          if (Ds.Tables[0].Rows.Count > 0)         {             foreach (DataRow dtrow in Ds.Tables[0].Rows)             {                 Details user = new GetDetails();                 user.RowNumber = dtrow["RowNumber"].ToString();                 user.Date = dtrow["Date"].ToString();                 user.FromTime = dtrow["FromTim...

What is object in C#

Object  : - Object is a instance of class. We can create more than one object a class according to requirements. Suppose we have a class name employee then create obect name of class . In the previous section we have discuss Office Owner will access and use all the Cabinof the Office and its Items. Similarly, to access all Class Method and Variable we use Objects. Example  : Class Employee {  --------- ---------- } Employee emp = new Employee(); here emp is an object of employee Class.

Fileupload using AngularJS in asp.net c#

Fileupload using AngularJS in asp.net c# AngularJS built-in ng-model directive. I added an attribute called ng-files in to the file input element. Now, I need to  create a directive in the controller matching with the attribute  The attribute has a function named getTheFiles() with a parameter $files . I’ll initialize the parameter $files in my directive and later call the function getTheFiles() using the controller’s scope, along with $files parameter. <!DOCTYPE html> <html> <head>   <title>AngularJS File Upoad Example with $http and FormData</title>   <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script> </head> <body ng-app="fupApp">     <div ng-controller="fupController">         <input type="file" id="file1" name="file" multiple        ...

What is scope inheritance ?

 scope inheritance  Scope inheritance in AngularJS is in organize into hierarchy and it is use by views. In Hierarchy of scope $rootScope is a parent and $Scope is a child. $rootScope is a global variable it is a single in application and $Scope can be multiple in a application.variable created in $scope is use by the view based on that controller. See Example which can help you understand. Suppose we have two controller parent and child. <html> <head> <script src="lib/angular.js"></script> <script> var app = angular.module('ScopeChain', []); app.controller("parent", function ($scope) { $scope.Name = 'Shashi Keshar'; $scope.$parent.CompAddress = 'Delhi '; }); app.controller("childController", function ($scope, $controller) { $scope.compHead = 'Noida; }); </script> </head> <body ng-...

Homework 1.4 MongoDB for DBAs

MongoDB Homework 1.4 for DBAs. Ans is given.