Untitled
unknown
plain_text
4 years ago
22 kB
4
Indexable
MVCGridDefinitionTable.Add("PendingRegistrationGrid", new MVCGridBuilder<PendingRegistrationGridModel>(colDefaults) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("AgentName").WithHeaderText("Agjenti") .WithVisibility(visible: true, allowChangeVisibility: true) .WithValueExpression(p => p.AgentName); cols.Add("SalesAgent").WithHeaderText("A. Shitjeve") .WithVisibility(visible: true, allowChangeVisibility: true) .WithValueExpression(p => p.SalesAgent); cols.Add("City").WithHeaderText("Qyteti") .WithVisibility(visible: true, allowChangeVisibility: true) .WithValueExpression(p => p.City); cols.Add("MainCategory").WithHeaderText("Kategorite") .WithVisibility(visible: true, allowChangeVisibility: true) .WithValueExpression(p => p.MainCategory); cols.Add("Executive") .WithVisibility(visible: true, allowChangeVisibility: true) .WithHtmlEncoding(false) .WithHeaderText("Executive") .WithValueExpression(p => p.ExecutiveConfirmation.Equals("N/Confirmed") ? "text-red" : "text-green") .WithPlainTextValueExpression(p => p.ExecutiveConfirmation) .WithValueTemplate("<span class='label {Value}'>{Model.ExecutiveConfirmation}</span>"); cols.Add("SalesStatus") .WithVisibility(visible: true, allowChangeVisibility: true) .WithHtmlEncoding(false) .WithHeaderText("Sales") .WithValueExpression(p => p.SalesStatus.Equals("N/Confirmed") ? "text-red" : "text-green") .WithPlainTextValueExpression(p => p.SalesStatus) .WithValueTemplate("<span class='label {Value}'>{Model.SalesStatus}</span>"); cols.Add("Operations") .WithVisibility(visible: true, allowChangeVisibility: true) .WithHtmlEncoding(false) .WithHeaderText("Operations") .WithValueExpression(p => p.OperationsStatus.Equals("N/Confirmed") ? "text-red" : "text-green") .WithPlainTextValueExpression(p => p.OperationsStatus) .WithValueTemplate("<span class='label {Value}'>{Model.OperationsStatus}</span>"); cols.Add("RequestDate").WithHeaderText("Kerkuar me") .WithVisibility(visible: true, allowChangeVisibility: true) .WithValueExpression(p => p.InsertedDate.ToString("dd/MM/yyyy")); cols.Add("Status") .WithVisibility(visible: true, allowChangeVisibility: true) .WithHtmlEncoding(false) .WithHeaderText("Status") .WithValueExpression(p => p.Status.Equals("Opened") ? "text-green" : "text-red") .WithPlainTextValueExpression(p => p.Status) .WithValueTemplate("<span class='label {Value}'>{Model.Status}</span>"); cols.Add("ViewLink").WithSorting(false) .WithVisibility(visible: true, allowChangeVisibility: true) .WithHeaderText("Me shume") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("RegistrationInfo", "RegisterAgent", new { id = p.TempRegistrationId })) .WithPlainTextValueExpression(p => p.TempRegistrationId.ToString()) .WithValueTemplate("<a class='text-more' href='{Value}'>Info</a>"); cols.Add("ConfirmLink").WithSorting(false) .WithVisibility(visible: true, allowChangeVisibility: true) .WithHeaderText("Konfirmo") .WithHtmlEncoding(false) .WithValueExpression(p => p.Id.ToString()) .WithPlainTextValueExpression(p => p.Id.ToString()) .WithValueTemplate("<a class='text-more' onclick='confirm({Value})' href='#'>Konfirmo</a>"); }) .WithSorting(true, "AgentName") .WithAdditionalQueryOptionNames("Search") .WithAdditionalQueryOptionNames("searchSalesAgent") .WithAdditionalQueryOptionNames("searchCity") .WithAdditionalQueryOptionNames("searchRequestDate") .WithAdditionalQueryOptionNames("searchMainCategory") .WithAdditionalQueryOptionNames("searchExecutive") .WithAdditionalQueryOptionNames("searchOperations") .WithAdditionalQueryOptionNames("searchSales") .WithAdditionalQueryOptionNames("searchExecutive") .WithAdditionalQueryOptionNames("searchStatus") .WithPaging(true, 10, true, 100) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; var result = new QueryResult<PendingRegistrationGridModel>(); using (var db = new Entities()) { var query = db.Database .SqlQuery<RegistrationRequestStoredProc>("RegistrationRequestGrid").AsEnumerable(); List<PendingRegistrationGridModel> registrations = new List<PendingRegistrationGridModel>(); foreach (var registration in query) { PendingRegistrationGridModel temp = new PendingRegistrationGridModel(); temp.Id = registration.Id; ChooseMainCategoriesModel mainCategoriesModel = JsonConvert.DeserializeObject<ChooseMainCategoriesModel>(registration.MainCategoriesSerialized); temp.MainCategory = string.Join("/", mainCategoriesModel.MainCategories.Where(a=>a.Choosen).Select(a=>a.MainCategory.Substring(0,1)).ToArray()); AgentDataModel agentData = new AgentDataModel(); if (registration.AgentsDataSerialized == null) { var agentId = db.TempRegistration.FirstOrDefault(a => a.Id == registration.TempRegistrationId).ExistingAgentId; } else { agentData = JsonConvert.DeserializeObject<AgentDataModel>(registration.AgentsDataSerialized); } //AgentDataModel agentData = JsonConvert.DeserializeObject<AgentDataModel>(registration.AgentsDataSerialized); temp.AgentName = agentData.PersonalData.FirstName + " " + agentData.PersonalData.Surname; temp.City = db.Cities.FirstOrDefault(a=>a.Id == agentData.Location.CityID).Name; temp.SalesAgent = registration.Username; temp.OperationsStatus = registration.OperationsStatus; temp.SalesStatus = registration.SalesStatus; temp.ExecutiveConfirmation = registration.ExecutiveStatus; temp.Status = registration.Status; temp.InsertedDate = registration.InsertedDate; temp.TempRegistrationId = registration.TempRegistrationId; registrations.Add(temp); } IEnumerable<PendingRegistrationGridModel> regModel = registrations.AsEnumerable(); result.TotalRecords = regModel.Count(); if (!String.IsNullOrWhiteSpace(options.SortColumnName)) { switch (options.SortColumnName.ToLower()) { case "agentname": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.AgentName); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.AgentName); break; } break; case "salesagent": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.SalesAgent); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.SalesAgent); break; } break; case "city": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.City); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.City); break; } break; case "maincategory": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.MainCategory); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.MainCategory); break; } break; case "executive": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.ExecutiveConfirmation); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.ExecutiveConfirmation); break; } break; case "operations": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.OperationsStatus); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.OperationsStatus); break; } break; case "salesstatus": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.SalesStatus); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.SalesStatus); break; } break; case "requestdate": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.InsertedDate); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.InsertedDate); break; } break; case "status": switch (options.SortDirection) { case SortDirection.Asc: regModel = regModel.OrderBy(p => p.Status); break; case SortDirection.Dsc: regModel = regModel.OrderByDescending(p => p.Status); break; } break; } } foreach (var regModelOption in options.AdditionalQueryOptions) { if (string.IsNullOrEmpty(regModelOption.Value) == true) { continue; } switch (regModelOption.Key) { case "Search": regModel = regModelOption.Value.StartsWith("!") == true ? regModel.Where(a => a.AgentName.Contains(regModelOption.Value.Substring(1), StringComparison.OrdinalIgnoreCase) == false) : regModel.Where(a => a.AgentName.Contains(regModelOption.Value, StringComparison.OrdinalIgnoreCase)); break; case "searchSalesAgent": regModel = regModelOption.Value.StartsWith("!") == true ? regModel.Where(a => a.SalesAgent.Contains(regModelOption.Value.Substring(1), StringComparison.OrdinalIgnoreCase) == false) : regModel.Where(a => a.SalesAgent.Contains(regModelOption.Value, StringComparison.OrdinalIgnoreCase)); break; case "searchRequestDate": regModel = regModel.Where(a => a.InsertedDate == DateTime.Parse(regModelOption.Value)); break; case "searchCity": if (regModelOption.Value.StartsWith("!") == true) { regModel = regModel.Where(a => a.City.Contains(regModelOption.Value.Substring(1), StringComparison.OrdinalIgnoreCase) == false); } else regModel = regModel.Where(a => a.City.Contains(regModelOption.Value, StringComparison.OrdinalIgnoreCase)); break; case "searchMainCategory": if (regModelOption.Value.StartsWith("!") == true) { regModel = regModel.Where(a => a.MainCategory.Contains(regModelOption.Value.Substring(1), StringComparison.OrdinalIgnoreCase) == false); } else regModel = regModel.Where(a => a.MainCategory.Contains(regModelOption.Value, StringComparison.OrdinalIgnoreCase)); break; case "searchStatus": regModel = regModelOption.Value.StartsWith("!") == true ? regModel.Where(a => a.Status.Contains(regModelOption.Value.Substring(1), StringComparison.OrdinalIgnoreCase) == false) : regModel.Where(a => a.Status.Contains(regModelOption.Value, StringComparison.OrdinalIgnoreCase)); break; case "searchOperations": switch (regModelOption.Value) { case "": break; case "PO": regModel = regModel.Where(a => a.OperationsStatus.Equals("Confirmed")); break; case "JO": regModel = regModel.Where(a => a.OperationsStatus.Equals("Confirmed") == false); break; } break; case "searchSales": switch (regModelOption.Value) { case "": break; case "PO": regModel = regModel.Where(a => a.SalesStatus.Equals("Confirmed")); break; case "JO": regModel = regModel.Where(a => a.SalesStatus.Equals("Confirmed") == false); break; } break; case "searchExecutive": switch (regModelOption.Value) { case "": break; case "PO": regModel = regModel.Where(a => a.ExecutiveConfirmation.Equals("Confirmed")); break; case "JO": regModel = regModel.Where(a => a.ExecutiveConfirmation.Equals("N/Confirmed")); break; case "N/A": regModel = regModel.Where(a => a.ExecutiveConfirmation.Equals("N/A")); break; case "NN/A": regModel = regModel.Where(a => a.ExecutiveConfirmation.Equals("N/A") == false); break; } break; } } result.TotalRecords = regModel.Count(); //string epIdSearch = options.GetAdditionalregModelOptionString(""); //if (string.IsNullOrEmpty(globalSearch) == false) //{ // regModel = regModel.Where(a => (a.AgentName + " " + a.City).Contains(globalSearch, StringComparison.OrdinalIgnoreCase)); //} if (options.GetLimitOffset().HasValue) { regModel = regModel.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } result.Items = regModel.ToList(); } return result; }) ); #endregion
Editor is loading...