예제 #1
0
        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())));
            }
        }
예제 #2
0
        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())));
            }
        }