public async Task <bool> Create(KpiItemContent KpiItemContent)
        {
            KpiItemContentDAO KpiItemContentDAO = new KpiItemContentDAO();

            KpiItemContentDAO.Id        = KpiItemContent.Id;
            KpiItemContentDAO.KpiItemId = KpiItemContent.KpiItemId;
            KpiItemContentDAO.ItemId    = KpiItemContent.ItemId;
            DataContext.KpiItemContent.Add(KpiItemContentDAO);
            await DataContext.SaveChangesAsync();

            KpiItemContent.Id = KpiItemContentDAO.Id;
            await SaveReference(KpiItemContent);

            return(true);
        }
Beispiel #2
0
        private async Task SaveReference(KpiItem KpiItem)
        {
            await DataContext.KpiItemContentKpiCriteriaItemMapping
            .Where(x => x.KpiItemContent.KpiItemId == KpiItem.Id)
            .DeleteFromQueryAsync();

            await DataContext.KpiItemContent
            .Where(x => x.KpiItemId == KpiItem.Id)
            .DeleteFromQueryAsync();

            List <KpiItemContentDAO> KpiItemContentDAOs = new List <KpiItemContentDAO>();
            List <KpiItemContentKpiCriteriaItemMappingDAO> KpiItemContentKpiCriteriaItemMappingDAOs = new List <KpiItemContentKpiCriteriaItemMappingDAO>();

            if (KpiItem.KpiItemContents != null)
            {
                KpiItem.KpiItemContents.ForEach(x => x.RowId = Guid.NewGuid());
                foreach (KpiItemContent KpiItemContent in KpiItem.KpiItemContents)
                {
                    KpiItemContentDAO KpiItemContentDAO = new KpiItemContentDAO();
                    //KpiItemContentDAO.Id = KpiItemContent.Id;
                    KpiItemContentDAO.KpiItemId = KpiItem.Id;
                    KpiItemContentDAO.ItemId    = KpiItemContent.ItemId;
                    KpiItemContentDAO.RowId     = KpiItemContent.RowId;
                    KpiItemContentDAOs.Add(KpiItemContentDAO);
                }
                await DataContext.KpiItemContent.BulkMergeAsync(KpiItemContentDAOs);

                foreach (KpiItemContent KpiItemContent in KpiItem.KpiItemContents)
                {
                    KpiItemContent.Id = KpiItemContentDAOs.Where(x => x.RowId == KpiItemContent.RowId).Select(x => x.Id).FirstOrDefault();
                    if (KpiItemContent.KpiItemContentKpiCriteriaItemMappings != null)
                    {
                        foreach (KpiItemContentKpiCriteriaItemMapping KpiItemContentKpiCriteriaItemMapping in KpiItemContent.KpiItemContentKpiCriteriaItemMappings)
                        {
                            KpiItemContentKpiCriteriaItemMappingDAO KpiItemContentKpiCriteriaItemMappingDAO = new KpiItemContentKpiCriteriaItemMappingDAO
                            {
                                KpiItemContentId  = KpiItemContent.Id,
                                KpiCriteriaItemId = KpiItemContentKpiCriteriaItemMapping.KpiCriteriaItemId,
                                Value             = KpiItemContentKpiCriteriaItemMapping.Value
                            };
                            KpiItemContentKpiCriteriaItemMappingDAOs.Add(KpiItemContentKpiCriteriaItemMappingDAO);
                        }
                    }
                }

                await DataContext.KpiItemContentKpiCriteriaItemMapping.BulkMergeAsync(KpiItemContentKpiCriteriaItemMappingDAOs);
            }
        }
        public async Task <bool> BulkMerge(List <KpiItemContent> KpiItemContents)
        {
            List <KpiItemContentDAO> KpiItemContentDAOs = new List <KpiItemContentDAO>();

            foreach (KpiItemContent KpiItemContent in KpiItemContents)
            {
                KpiItemContentDAO KpiItemContentDAO = new KpiItemContentDAO();
                KpiItemContentDAO.Id        = KpiItemContent.Id;
                KpiItemContentDAO.KpiItemId = KpiItemContent.KpiItemId;
                KpiItemContentDAO.ItemId    = KpiItemContent.ItemId;
                KpiItemContentDAOs.Add(KpiItemContentDAO);
            }
            await DataContext.BulkMergeAsync(KpiItemContentDAOs);

            return(true);
        }
        public async Task <bool> Update(KpiItemContent KpiItemContent)
        {
            KpiItemContentDAO KpiItemContentDAO = DataContext.KpiItemContent.Where(x => x.Id == KpiItemContent.Id).FirstOrDefault();

            if (KpiItemContentDAO == null)
            {
                return(false);
            }
            KpiItemContentDAO.Id        = KpiItemContent.Id;
            KpiItemContentDAO.KpiItemId = KpiItemContent.KpiItemId;
            KpiItemContentDAO.ItemId    = KpiItemContent.ItemId;
            await DataContext.SaveChangesAsync();

            await SaveReference(KpiItemContent);

            return(true);
        }