Untitled
unknown
plain_text
4 years ago
22 kB
7
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;
})
);
#endregionEditor is loading...