示例#1
0
        private int GetPermitCount(string searchKey, RequestType requestType, string theDate)
        {
            try
            {
                DateTime date;
                if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi)
                {
                    date = Utility.ToMildiDate(theDate);
                }
                else
                {
                    date = Utility.ToMildiDateTime(theDate);
                }

                //IList<decimal> controlStationIds = accessPort.GetAccessibleControlStations();
                List <decimal>  prsIds     = new List <decimal>();
                IList <decimal> precardIds = accessPort.GetAccessiblePrecards();

                if (searchKey != null)
                {
                    IList <Person> quciSearchInUnderManagment = searchTool.QuickSearch(searchKey, PersonCategory.Sentry_UnderManagment);
                    var            ids = from o in quciSearchInUnderManagment
                                         select o.ID;
                    prsIds.AddRange(ids.ToList <decimal>());
                }
                else
                {
                    IList <Person> quciSearchInUnderManagment = searchTool.QuickSearch("", PersonCategory.Sentry_UnderManagment);
                    var            ids = from o in quciSearchInUnderManagment
                                         select o.ID;
                    prsIds = ids.ToList <decimal>();
                }

                IList <InfoRequest> requestList = new RequestRepository(false).GetAllRequestMinOneLevelConfirm(prsIds, precardIds, date, SentryPermitsOrderBy.PermitSubject);
                IList <Precard>     precardList = new BPrecard().GetAll();
                switch (requestType)
                {
                case RequestType.Daily:
                    requestList = requestList.Where(x => precardList.Any(y => y.IsDaily && y.ID == x.PrecardID)).ToList();
                    break;

                case RequestType.Hourly:
                    requestList = requestList.Where(x => precardList.Any(y => y.IsHourly && y.ID == x.PrecardID)).ToList();
                    break;
                }

                int count = requestList.Count;
                return(count);
            }
            catch (Exception ex)
            {
                BaseBusiness <Entity> .LogException(ex, "BSentryPermits", "GetPermitCount");

                throw ex;
            }
        }
示例#2
0
        private IList <KartablProxy> GetAllPermits(string searchKey, RequestType requestType, string theDate, bool isEndFlowRequestsView, int pageIndex, int pageSize, SentryPermitsOrderBy orderby, out int count)
        {
            try
            {
                DateTime date;
                if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi)
                {
                    date = Utility.ToMildiDate(theDate);
                }
                else
                {
                    date = Utility.ToMildiDateTime(theDate);
                }

                //IList<decimal> controlStationIds = accessPort.GetAccessibleControlStations();
                List <decimal>  prsIds     = new List <decimal>();
                IList <decimal> precardIds = accessPort.GetAccessiblePrecards();

                if (searchKey != null)
                {
                    IList <Person> quciSearchInUnderManagment = searchTool.QuickSearch(searchKey, PersonCategory.Sentry_UnderManagment);
                    var            ids = from o in quciSearchInUnderManagment
                                         select o.ID;
                    prsIds.AddRange(ids.ToList <decimal>());
                }
                else
                {
                    IList <Person> quciSearchInUnderManagment = searchTool.QuickSearch("", PersonCategory.Sentry_UnderManagment);
                    var            ids = from o in quciSearchInUnderManagment
                                         select o.ID;
                    prsIds = ids.ToList <decimal>();
                }

                IList <InfoRequest> requestList = new RequestRepository(false).GetAllRequestMinOneLevelConfirm(prsIds, precardIds, date, orderby);
                if (requestList == null)
                {
                    requestList = new List <InfoRequest>();
                }
                IList <Precard> precardList = new BPrecard().GetAll();
                switch (requestType)
                {
                case RequestType.Daily:
                    requestList = requestList.Where(x => precardList.Any(y => y.IsDaily && y.ID == x.PrecardID) && x.LookupKey != PrecardGroupsName.terminate.ToString() && ((x.ChildsCount != 0 && x.ChildsUnConfirmCount != 0 && x.ChildsCount == x.ChildsUnConfirmCount) || x.ChildsCount == 0)).ToList();
                    break;

                case RequestType.Hourly:
                    requestList = requestList.Where(x => precardList.Any(y => y.IsHourly && y.ID == x.PrecardID) && x.LookupKey != PrecardGroupsName.overwork.ToString() && x.LookupKey != PrecardGroupsName.imperative.ToString() && x.LookupKey != PrecardGroupsName.terminate.ToString() && ((x.ChildsCount != 0 && x.ChildsUnConfirmCount != 0 && x.ChildsCount == x.ChildsUnConfirmCount) || x.ChildsCount == 0)).ToList();
                    break;

                case RequestType.Monthly:
                    requestList = requestList.Where(x => precardList.Any(y => y.IsMonthly && y.ID == x.PrecardID) && x.LookupKey != PrecardGroupsName.terminate.ToString() && ((x.ChildsCount != 0 && x.ChildsUnConfirmCount != 0 && x.ChildsCount == x.ChildsUnConfirmCount) || x.ChildsCount == 0)).ToList();
                    break;

                case RequestType.OverWork:
                    requestList = requestList.Where(x => x.LookupKey == PrecardGroupsName.overwork.ToString() && ((x.ChildsCount != 0 && x.ChildsUnConfirmCount != 0 && x.ChildsCount == x.ChildsUnConfirmCount) || x.ChildsCount == 0)).ToList();
                    break;

                case RequestType.Imperative:
                    requestList = requestList.Where(x => x.LookupKey == PrecardGroupsName.imperative.ToString()).ToList();
                    break;

                case RequestType.Terminate:
                    requestList = requestList.Where(x => x.ParentID != null).ToList();
                    break;

                case RequestType.None:
                    requestList = requestList.Where(x => x.LookupKey != PrecardGroupsName.terminate.ToString() && ((x.ChildsCount != 0 && x.ChildsUnConfirmCount != 0 && x.ChildsCount == x.ChildsUnConfirmCount) || x.ChildsCount == 0)).ToList();
                    break;
                }
                if (isEndFlowRequestsView)
                {
                    requestList = requestList.Where(x => x.Confirm.HasValue && x.Confirm.Value).ToList();
                }

                count       = requestList.Count;
                requestList = requestList.Skip(pageSize * pageIndex).Take(pageSize).ToList();


                IList <KartablProxy> kartablResult = new List <KartablProxy>();
                int counter = 0;
                foreach (InfoRequest request in requestList)
                {
                    counter++;
                    KartablProxy proxy = new KartablProxy();
                    if (BLanguage.CurrentSystemLanguage == LanguagesName.Parsi)
                    {
                        proxy.TheFromDate = Utility.ToPersianDate(request.FromDate);
                        proxy.TheToDate   = Utility.ToPersianDate(request.ToDate);
                    }
                    else
                    {
                        proxy.TheFromDate = Utility.ToString(request.FromDate);
                        proxy.TheToDate   = Utility.ToString(request.ToDate);
                    }
                    proxy.ID           = request.ID;
                    proxy.RequestID    = request.ID;
                    proxy.TheFromTime  = Utility.IntTimeToRealTime(request.FromTime);
                    proxy.TheToTime    = Utility.IntTimeToRealTime(request.ToTime);
                    proxy.Row          = counter;
                    proxy.RequestTitle = request.PrecardName;
                    proxy.Applicant    = request.Applicant;
                    proxy.PersonImage  = request.PersonImage;
                    proxy.Barcode      = request.PersonCode;
                    proxy.PersonId     = request.PersonID;
                    proxy.Description  = request.Description;
                    string            name      = request.LookupKey;
                    PrecardGroupsName groupName = (PrecardGroupsName)Enum.Parse(typeof(PrecardGroupsName), name);
                    if (groupName == PrecardGroupsName.overwork)
                    {
                        proxy.RequestType = RequestType.OverWork;

                        //تنظیم زمان ابتدا و انتها
                        //درخواست بازه ای بدون انتدا و انتها
                        if (request.TimeDuration > 0 && request.FromTime == 1439 && request.ToTime == 1439)
                        {
                            proxy.TheFromTime = proxy.TheToTime = "";
                        }
                    }
                    else if (groupName == PrecardGroupsName.imperative)
                    {
                        proxy.RequestType = RequestType.Imperative;
                    }
                    else if (request.IsHourly)
                    {
                        proxy.RequestType = RequestType.Hourly;
                    }
                    else if (request.IsDaily)
                    {
                        proxy.RequestType = RequestType.Daily;
                    }
                    else if (request.IsMonthly)
                    {
                        proxy.RequestType = RequestType.Monthly;
                    }
                    else
                    {
                        proxy.RequestType = RequestType.None;
                    }
                    proxy.DepartmentId   = request.DepartmentId;
                    proxy.DepartmentName = request.DepartmentName;
                    kartablResult.Add(proxy);
                }
                return(kartablResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }