public ActionResult SearchServiceRequestUser(string branch, string product, string campaign, string area, string subarea, string fromdate, string todate) { Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search SR User").Add("Branch", branch).Add("Product", product) .Add("Campaign", campaign).Add("Area", area).Add("Subarea", subarea).Add("FromDate", fromdate).Add("ToDate", todate).ToInputLogString()); int branchId = 0; int productId = 0; int campaignId = 0; int areaId = 0; int subareaId = 0; DateTime dateFrom = DateTime.MinValue; DateTime dateTo = DateTime.MinValue; if (!String.IsNullOrEmpty(branch)) { branchId = Int32.Parse(branch, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(product)) { productId = Int32.Parse(product, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(campaign)) { campaignId = Int32.Parse(campaign, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(area)) { areaId = Int32.Parse(area, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(subarea)) { subareaId = Int32.Parse(subarea, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(fromdate)) { DateTime.TryParse(fromdate, out dateFrom); } if (!String.IsNullOrEmpty(todate)) { DateTime.TryParse(todate, out dateTo); } try { UserMonitoringModel userAssign = new UserMonitoringModel(); _userMonitoringFacade = new UserMonitoringFacade(); var current = _userMonitoringFacade.GetUserByLoginName(this.UserInfo.Username); var cur = new List <int>(); cur.Add(this.UserInfo.UserId); _userFacade = new UserFacade(); var listUserEntities = _userFacade.GetUsersBySupervisorIds(cur); if (branchId != 0) { listUserEntities = listUserEntities.Where(p => p.BranchId == branchId).ToList(); } userAssign.UserAssignInformation = new List <UserAssignInformationModel>(); if (current != null) { var srList = _userMonitoringFacade.GetServiceRequestList(new ServiceRequestSearchFilter { OwnerUserId = current.UserId, DelegateUserId = current.UserId }); if (productId != 0) { srList = srList.Where(p => p.ProductId == productId).ToList(); } if (campaignId != 0) { srList = srList.Where(p => p.CampaignServiceId == campaignId).ToList(); } if (areaId != 0) { srList = srList.Where(p => p.AreaId == areaId).ToList(); } if (subareaId != 0) { srList = srList.Where(p => p.SubAreaId == subareaId).ToList(); } if (dateFrom.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.CreateDate.HasValue && p.CreateDate.Value.CompareTo(dateFrom) >= 0).ToList(); } if (dateTo.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.ClosedDate.HasValue && p.ClosedDate.Value.CompareTo(dateTo) <= 0).ToList(); } if (branchId == 0 || current.BranchId == branchId) { var currentUserAssign = new UserAssignInformationModel { Role = !String.IsNullOrEmpty(current.RoleCode) ? current.RoleCode : String.Empty, BranchName = !String.IsNullOrEmpty(current.BranchName) ? current.BranchName : String.Empty, UserId = current.UserId, Username = !String.IsNullOrEmpty(current.Username) ? current.Username : String.Empty, FullName = !String.IsNullOrEmpty(current.FullName) ? current.FullName : String.Empty, ServiceRequests = srList, }; userAssign.UserAssignInformation.Add(currentUserAssign); } } if (listUserEntities != null && listUserEntities.Any()) { foreach (var emp in listUserEntities) { var srList = _userMonitoringFacade.GetServiceRequestList(new ServiceRequestSearchFilter { OwnerUserId = emp.UserId, DelegateUserId = emp.UserId }); if (productId != 0) { srList = srList.Where(p => p.ProductId == productId).ToList(); } if (campaignId != 0) { srList = srList.Where(p => p.CampaignServiceId == campaignId).ToList(); } if (areaId != 0) { srList = srList.Where(p => p.AreaId == areaId).ToList(); } if (subareaId != 0) { srList = srList.Where(p => p.SubAreaId == subareaId).ToList(); } if (dateFrom.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.CreateDate.HasValue && p.CreateDate.Value.CompareTo(dateFrom) >= 0).ToList(); } if (dateTo.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.ClosedDate.HasValue && p.ClosedDate.Value.CompareTo(dateTo) <= 0).ToList(); } var currentUserAssign = new UserAssignInformationModel { Role = !String.IsNullOrEmpty(emp.RoleCode) ? emp.RoleCode : String.Empty, BranchName = !String.IsNullOrEmpty(emp.BranchName) ? emp.BranchName : String.Empty, UserId = emp.UserId, Username = !String.IsNullOrEmpty(emp.Username) ? emp.Username : String.Empty, FullName = !String.IsNullOrEmpty(emp.FullName) ? emp.FullName : String.Empty, ServiceRequests = srList }; userAssign.UserAssignInformation.Add(currentUserAssign); } } return(Json(new { IsSuccess = true, data = userAssign.UserAssignInformation, Error = string.Empty })); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search SR User").Add("Error Message", ex.Message).ToFailLogString()); return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString()))); } }
public ActionResult SearchServiceRequestGroup(string product, string campaign, string area, string subarea, string fromdate, string todate) { Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search SR Group").Add("Product", product).Add("Campaign", campaign) .Add("Subarea", subarea).Add("FromDate", fromdate).Add("ToDate", todate).ToInputLogString()); int productId = 0; int campaignId = 0; int areaId = 0; int subareaId = 0; DateTime dateFrom = DateTime.MinValue; DateTime dateTo = DateTime.MinValue; if (!String.IsNullOrEmpty(product)) { productId = Int32.Parse(product, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(campaign)) { campaignId = Int32.Parse(campaign, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(area)) { areaId = Int32.Parse(area, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(subarea)) { subareaId = Int32.Parse(subarea, CultureInfo.InvariantCulture); } if (!String.IsNullOrEmpty(fromdate)) { DateTime.TryParse(fromdate, out dateFrom); } if (!String.IsNullOrEmpty(todate)) { DateTime.TryParse(todate, out dateTo); } try { UserMonitoringModel userAssign = new UserMonitoringModel(); var cur = new List <int>(); cur.Add(this.UserInfo.UserId); _userFacade = new UserFacade(); var listUserEntities = _userFacade.GetUsersBySupervisorIds(cur); var current = _userMonitoringFacade.GetUserByLoginName(this.UserInfo.Username); userAssign.GroupAssignInformation = new List <GroupAssignInformationModel>(); userAssign.Branchs = new List <BranchEntity>(); if (listUserEntities != null) { listUserEntities.Add(current); listUserEntities.Sort((x, y) => String.Compare(x.BranchName, y.BranchName, StringComparison.Ordinal)); List <int> braches = listUserEntities.Select(x => x.BranchId ?? 0).ToList(); braches = braches.Distinct().ToList(); List <UserEntity> dummies = _userMonitoringFacade.GetDummyUserByBranchIds(braches); foreach (var br in braches) { var dummy = dummies.FirstOrDefault(x => x.BranchId == br); var grpAssign = new GroupAssignInformationModel(); if (dummy != null) { grpAssign.BranchCodeTeam = dummy.BranchCode; grpAssign.BranchNameTeam = dummy.BranchName; grpAssign.UserIds = string.Join(",", listUserEntities.Select(x => x.UserId).ToList()); grpAssign.UserId = dummy.UserId; var srList = _userMonitoringFacade.GetServiceRequestList(new ServiceRequestSearchFilter { OwnerUserId = dummy.UserId, DelegateUserId = dummy.UserId }); if (productId != 0) { srList = srList.Where(p => p.ProductId == productId).ToList(); } if (campaignId != 0) { srList = srList.Where(p => p.CampaignServiceId == campaignId).ToList(); } if (areaId != 0) { srList = srList.Where(p => p.AreaId == areaId).ToList(); } if (subareaId != 0) { srList = srList.Where(p => p.SubAreaId == subareaId).ToList(); } if (dateFrom.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.CreateDate.HasValue && p.CreateDate.Value.CompareTo(dateFrom) >= 0).ToList(); } if (dateTo.CompareTo(DateTime.MinValue) != 0) { srList = srList.Where(p => p.ClosedDate.HasValue && p.ClosedDate.Value.CompareTo(dateTo) <= 0).ToList(); } grpAssign.ServiceRequests = srList; userAssign.GroupAssignInformation.Add(grpAssign); userAssign.Branchs.Add(new BranchEntity() { BranchId = br, BranchName = dummy.BranchName, }); } } } return(Json(new { IsSuccess = true, data = userAssign.GroupAssignInformation, Error = string.Empty })); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("User Monitoring :: Search SR Group").Add("Error Message", ex.Message).ToFailLogString()); return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString()))); } }