Ejemplo n.º 1
0
        public async Task <bool> Update(KpiItem KpiItem)
        {
            KpiItemDAO KpiItemDAO = DataContext.KpiItem.Where(x => x.Id == KpiItem.Id).FirstOrDefault();

            if (KpiItemDAO == null)
            {
                return(false);
            }
            KpiItemDAO.Id             = KpiItem.Id;
            KpiItemDAO.OrganizationId = KpiItem.OrganizationId;
            KpiItemDAO.KpiYearId      = KpiItem.KpiYearId;
            KpiItemDAO.KpiPeriodId    = KpiItem.KpiPeriodId;
            KpiItemDAO.StatusId       = KpiItem.StatusId;
            KpiItemDAO.EmployeeId     = KpiItem.EmployeeId;
            KpiItemDAO.CreatorId      = KpiItem.CreatorId;
            KpiItemDAO.UpdatedAt      = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(KpiItem);

            return(true);
        }
Ejemplo n.º 2
0
        public async Task <bool> Create(KpiItem KpiItem)
        {
            KpiItemDAO KpiItemDAO = new KpiItemDAO();

            KpiItemDAO.Id             = KpiItem.Id;
            KpiItemDAO.OrganizationId = KpiItem.OrganizationId;
            KpiItemDAO.KpiYearId      = KpiItem.KpiYearId;
            KpiItemDAO.KpiPeriodId    = KpiItem.KpiPeriodId;
            KpiItemDAO.StatusId       = KpiItem.StatusId;
            KpiItemDAO.EmployeeId     = KpiItem.EmployeeId;
            KpiItemDAO.CreatorId      = KpiItem.CreatorId;
            KpiItemDAO.CreatedAt      = StaticParams.DateTimeNow;
            KpiItemDAO.UpdatedAt      = StaticParams.DateTimeNow;
            KpiItemDAO.RowId          = Guid.NewGuid();
            DataContext.KpiItem.Add(KpiItemDAO);
            await DataContext.SaveChangesAsync();

            KpiItem.Id    = KpiItemDAO.Id;
            KpiItem.RowId = KpiItemDAO.RowId;
            await SaveReference(KpiItem);

            return(true);
        }
Ejemplo n.º 3
0
        public async Task <bool> BulkMerge(List <KpiItem> KpiItems)
        {
            List <KpiItemDAO> KpiItemDAOs = new List <KpiItemDAO>();

            foreach (KpiItem KpiItem in KpiItems)
            {
                KpiItemDAO KpiItemDAO = new KpiItemDAO();
                KpiItemDAO.Id             = KpiItem.Id;
                KpiItemDAO.OrganizationId = KpiItem.OrganizationId;
                KpiItemDAO.KpiYearId      = KpiItem.KpiYearId;
                KpiItemDAO.KpiPeriodId    = KpiItem.KpiPeriodId;
                KpiItemDAO.StatusId       = KpiItem.StatusId;
                KpiItemDAO.EmployeeId     = KpiItem.EmployeeId;
                KpiItemDAO.CreatorId      = KpiItem.CreatorId;
                KpiItemDAO.CreatedAt      = StaticParams.DateTimeNow;
                KpiItemDAO.UpdatedAt      = StaticParams.DateTimeNow;
                KpiItemDAO.RowId          = Guid.NewGuid();
                KpiItemDAOs.Add(KpiItemDAO);
                KpiItem.RowId = KpiItemDAO.RowId;
            }
            await DataContext.BulkMergeAsync(KpiItemDAOs);

            var KpiItemIds = KpiItemDAOs.Select(x => x.Id).ToList();
            await DataContext.KpiItemContentKpiCriteriaItemMapping
            .Where(x => KpiItemIds.Contains(x.KpiItemContent.KpiItemId))
            .DeleteFromQueryAsync();

            await DataContext.KpiItemContent
            .Where(x => KpiItemIds.Contains(x.KpiItemId))
            .DeleteFromQueryAsync();

            var KpiItemContentDAOs = new List <KpiItemContentDAO>();

            foreach (var KpiItem in KpiItems)
            {
                KpiItem.Id = KpiItemDAOs.Where(x => x.RowId == KpiItem.RowId).Select(x => x.Id).FirstOrDefault();
                if (KpiItem.KpiItemContents != null && KpiItem.KpiItemContents.Any())
                {
                    var listContent = KpiItem.KpiItemContents.Select(x => new KpiItemContentDAO
                    {
                        ItemId    = x.ItemId,
                        KpiItemId = KpiItem.Id,
                        KpiItemContentKpiCriteriaItemMappings = x.KpiItemContentKpiCriteriaItemMappings.Select(x => new KpiItemContentKpiCriteriaItemMappingDAO
                        {
                            KpiCriteriaItemId = x.KpiCriteriaItemId,
                            Value             = x.Value,
                            KpiItemContentId  = 0
                        }).ToList(),
                        RowId = Guid.NewGuid()
                    }).ToList();
                    KpiItemContentDAOs.AddRange(listContent);
                }
            }
            await DataContext.KpiItemContent.BulkMergeAsync(KpiItemContentDAOs);

            var KpiItemContentKpiCriteriaItemMappingDAOs = new List <KpiItemContentKpiCriteriaItemMappingDAO>();

            foreach (var KpiItemContent in KpiItemContentDAOs)
            {
                KpiItemContent.Id = DataContext.KpiItemContent.Where(x => x.RowId == KpiItemContent.RowId).Select(x => x.Id).FirstOrDefault(); // get Id dua vao RowId
                if (KpiItemContent.KpiItemContentKpiCriteriaItemMappings != null && KpiItemContent.KpiItemContentKpiCriteriaItemMappings.Any())
                {
                    var listMappings = KpiItemContent.KpiItemContentKpiCriteriaItemMappings.Select(x => new KpiItemContentKpiCriteriaItemMappingDAO
                    {
                        KpiCriteriaItemId = x.KpiCriteriaItemId,
                        Value             = x.Value,
                        KpiItemContentId  = KpiItemContent.Id
                    }).ToList();
                    KpiItemContentKpiCriteriaItemMappingDAOs.AddRange(listMappings);
                }
            }
            await DataContext.KpiItemContentKpiCriteriaItemMapping.BulkMergeAsync(KpiItemContentKpiCriteriaItemMappingDAOs);

            return(true);
        }