コード例 #1
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateEmployees(KpiItem KpiItem)
        {
            if (KpiItem.EmployeeIds == null || !KpiItem.EmployeeIds.Any())
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.EmployeeIds), ErrorCode.EmployeeIdsEmpty);
            }
            else
            {
                AppUserFilter AppUserFilter = new AppUserFilter
                {
                    Skip = 0,
                    Take = int.MaxValue,
                    Id   = new IdFilter {
                        In = KpiItem.EmployeeIds
                    },
                    OrganizationId = new IdFilter(),
                    Selects        = AppUserSelect.Id
                };

                var EmployeeIdsInDB   = (await UOW.AppUserRepository.List(AppUserFilter)).Select(x => x.Id).ToList();
                var listIdsNotExisted = KpiItem.EmployeeIds.Except(EmployeeIdsInDB).ToList();

                if (listIdsNotExisted != null && listIdsNotExisted.Any())
                {
                    foreach (var Id in listIdsNotExisted)
                    {
                        KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.EmployeeIds), ErrorCode.IdNotExisted);
                    }
                }
            }
            return(KpiItem.IsValidated);
        }
コード例 #2
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateItem(KpiItem KpiItem)
        {
            if (KpiItem.KpiItemContents == null || !KpiItem.KpiItemContents.Any())
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.KpiItemContents), ErrorCode.KpiItemContentsEmpty);
            }
            else
            {
                var        ItemIds    = KpiItem.KpiItemContents.Select(x => x.ItemId).ToList();
                ItemFilter ItemFilter = new ItemFilter
                {
                    Skip    = 0,
                    Take    = int.MaxValue,
                    Selects = ItemSelect.Id,
                    Id      = new IdFilter {
                        In = ItemIds
                    }
                };

                var ItemIdsInDB       = (await UOW.ItemRepository.List(ItemFilter)).Select(x => x.Id).ToList();
                var ItemIdsNotExisted = ItemIds.Except(ItemIdsInDB).ToList();
                if (ItemIdsNotExisted != null && ItemIdsNotExisted.Any())
                {
                    foreach (var Id in ItemIdsNotExisted)
                    {
                        KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.KpiItemContents), ErrorCode.ItemIdNotExisted);
                    }
                }
            }
            return(KpiItem.IsValidated);
        }
コード例 #3
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateOrganization(KpiItem KpiItem)
        {
            if (KpiItem.OrganizationId == 0)
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.Organization), ErrorCode.OrganizationEmpty);
            }
            else
            {
                OrganizationFilter OrganizationFilter = new OrganizationFilter
                {
                    Id = new IdFilter {
                        Equal = KpiItem.OrganizationId
                    }
                };

                var count = await UOW.OrganizationRepository.Count(OrganizationFilter);

                if (count == 0)
                {
                    KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.Organization), ErrorCode.OrganizationIdNotExisted);
                }
            }

            return(KpiItem.IsValidated);
        }
コード例 #4
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
 private async Task <bool> ValidateStatus(KpiItem KpiItem)
 {
     if (StatusEnum.ACTIVE.Id != KpiItem.StatusId && StatusEnum.INACTIVE.Id != KpiItem.StatusId)
     {
         KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.Status), ErrorCode.StatusNotExisted);
     }
     return(KpiItem.IsValidated);
 }
コード例 #5
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateKpiYear(KpiItem KpiItem)
        {
            KpiYearFilter KpiYearFilter = new KpiYearFilter
            {
                Id = new IdFilter {
                    Equal = KpiItem.KpiYearId
                }
            };

            int count = await UOW.KpiYearRepository.Count(KpiYearFilter);

            if (count == 0)
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.KpiYear), ErrorCode.KpiYearIdNotExisted);
            }
            return(KpiItem.IsValidated);
        }
コード例 #6
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateTime(KpiItem KpiItem)
        {
            await ValidateKpiPeriod(KpiItem);
            await ValidateKpiYear(KpiItem);

            if (!KpiItem.IsValidated)
            {
                return(false);
            }
            DateTime now = StaticParams.DateTimeNow;
            DateTime StartDate, EndDate;

            (StartDate, EndDate) = DateTimeConvert(KpiItem.KpiPeriodId, KpiItem.KpiYearId);
            if (now > EndDate)
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.KpiYear), ErrorCode.KpiYearAndKpiPeriodMustInTheFuture);
            }
            return(KpiItem.IsValidated);
        }
コード例 #7
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        public async Task <bool> ValidateId(KpiItem KpiItem)
        {
            KpiItemFilter KpiItemFilter = new KpiItemFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = KpiItem.Id
                },
                Selects = KpiItemSelect.Id
            };

            int count = await UOW.KpiItemRepository.Count(KpiItemFilter);

            if (count == 0)
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
コード例 #8
0
ファイル: KpiItemValidator.cs プロジェクト: hienmx95/crm-be
        private async Task <bool> ValidateValue(KpiItem KpiItem)
        {
            bool flag = false;

            if (KpiItem.KpiItemContents != null)
            {
                foreach (var KpiItemContent in KpiItem.KpiItemContents)
                {
                    foreach (var item in KpiItemContent.KpiItemContentKpiCriteriaItemMappings)
                    {
                        if (item.Value != null)
                        {
                            flag = true;
                        }
                    }
                }
            }
            if (!flag)
            {
                KpiItem.AddError(nameof(KpiItemValidator), nameof(KpiItem.Id), ErrorCode.ValueCannotBeNull);
            }
            return(KpiItem.IsValidated);
        }