public ActionResult DeleteAjaxServiceDeskGrid([DataSourceRequest] DataSourceRequest request, ServiceDeskViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var serviceDesk = _serviceDeskService.GetById(model.Id);

                    if (serviceDesk == null)
                    {
                        ModelState.AddModelError(ModelStateErrorNames.ServiceDeskDeleteEntityDoesNotExist,
                                                 WebResources.ServiceDeskCannotFindServiceDeskToBeDeleted);
                    }
                    else if (serviceDesk.ServiceDomains.Any())
                    {
                        ModelState.AddModelError(ModelStateErrorNames.ErrorMessage,
                                                 WebResources.ServiceDesksCannotBeDeletedDueToServiceDomainsExisting);
                    }
                    else
                    {
                        _serviceDeskService.Delete(serviceDesk);
                    }
                }
                catch (Exception ex)
                {
                    _contextManager.ResponseManager.StatusCode = 500;
                    _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message);
                }
            }

            return(Json(new[] { model }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult CreateAjaxServiceDeskGrid([DataSourceRequest] DataSourceRequest request, ServiceDeskViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var userName    = _contextManager.UserManager.Name;
                    var dateTimeNow = DateTime.Now;

                    // Insert
                    var serviceDesk = Mapper.Map <ServiceDeskViewModel, ServiceDesk>(model);
                    serviceDesk.CustomerId     = model.CustomerId;
                    serviceDesk.InsertedBy     = userName;
                    serviceDesk.InsertedDate   = dateTimeNow;
                    serviceDesk.UpdatedBy      = userName;
                    serviceDesk.UpdatedDate    = dateTimeNow;
                    serviceDesk.DeskInputTypes = new List <DeskInputType>();
                    foreach (var comm in model.DeskInputTypes)
                    {
                        serviceDesk.DeskInputTypes.Add(new DeskInputType()
                        {
                            InputTypeRefData = _inputTypeRefDataService.GetById(comm.Id)
                        });
                    }
                    _serviceDeskService.Create(serviceDesk);
                }
                catch (Exception ex)
                {
                    _contextManager.ResponseManager.StatusCode = 500;
                    _contextManager.ResponseManager.AppendHeader(ModelStateErrorNames.ErrorMessage, ex.Message);
                }
            }

            return(Json(new[] { model }.ToDataSourceResult(request, ModelState)));
        }