Ejemplo n.º 1
0
 public GridResponse GridDelete([FromGridRequest] string requestString)
 {
     try
     {
         var request = GridRequest.Deserialize(requestString);
         var range   = dbContext.Employee.Where(e => request.Selected.Contains(e.Id));
         dbContext.Employee.RemoveRange(range);
         dbContext.SaveChanges();
         return(GridResponse.Success);
     }
     catch (Exception ex)
     {
         return(GridResponse.Error(GetMessage(ex)));
     }
 }
Ejemplo n.º 2
0
 public GridResponse GridSave([FromGridRequest] string requestString)
 {
     try
     {
         var request = GridRequest.Deserialize(requestString);
         //var records = new List<object>();
         foreach (var change in request.Changes)
         {
             var id       = Convert.ToInt32(change[Columns.ID.field]);
             var employee = dbContext.Employee.Find(id);
             if (employee != null)
             {
                 var viewModel = GetEmployeeViewModel(employee);
                 if (change.TryGetValue(Columns.Name.field, out object name))
                 {
                     viewModel.Name = name.ToString();
                 }
                 if (change.TryGetValue(Columns.Employed.field, out object employed))
                 {
                     viewModel.Employed = Convert.ToInt16(employed);
                 }
                 if (change.TryGetValue(Columns.Rating.field, out object rating))
                 {
                     viewModel.Rating = Convert.ToSingle(rating);
                 }
                 if (change.TryGetValue(Columns.RatingYear.field, out object ratingYear))
                 {
                     viewModel.RatingYear = Convert.ToInt32(ratingYear);
                 }
                 UpdateEmployeeFromView(employee, viewModel);
             }
             //records.Add(ToGridRecord(employee));
         }
         dbContext.SaveChanges();
         //return new GridResponse { records = records };
         return(GridResponse.Success); // The grid seems to just reload anyway.
     }
     catch (Exception ex)
     {
         return(GridResponse.Error(GetMessage(ex)));
     }
 }
Ejemplo n.º 3
0
        public async Task <string> GridGet([FromGridRequest] string requestString)
        {
            try
            {
                var request = GridRequest.Deserialize(requestString);

                IQueryable <Employee> query = dbContext.Employee;

                // https://github.com/dotnet/efcore/issues/11488
                //foreach (var search in request.Search)
                //{
                //    if (search.value == null) continue;

                //    Func<string, bool> containsFunc = ...;
                //    if (search.field == Columns.Name.field)
                //        query = query.Where(e => containsFunc(e.Name));
                //}

                var count = query.CountAsync();

                IEnumerable <Employee> records = await query
                                                 .OrderByDescending(e => e.Employed + e.YearsEmployed)
                                                 .OrderByDescending(e => e.Employed)
                                                 .Skip(request.Offset).Take(request.Limit)
                                                 .Include(e => e.Position)
                                                 .ToListAsync();

                return(new GridResponse
                {
                    total = await count,
                    records = records.Select(ToGridRecord)
                }.Serialize());
            }
            catch (Exception ex)
            {
                return(GridResponse.Error(ex.Message).Serialize());
            }
        }