Esempio n. 1
0
        private BaseResponse UpdateKpiAchievement(IEnumerable <ConfigurationViewModel.Item> data)
        {
            var response = new BaseResponse {
                IsSuccess = false, Message = "Data Not Valid"
            };

            if (data != null)
            {
                var batch = new BatchUpdateKpiAchievementRequest();
                foreach (var datum in data)
                {
                    var prepare = new UpdateKpiAchievementItemRequest()
                    {
                        Id = datum.Id, KpiId = datum.KpiId, Periode = datum.Periode, Value = datum.Value, PeriodeType = datum.PeriodeType, Remark = datum.Remark
                    };                                                                                                                                                                                               // data.MapTo<UpdateKpiAchievementItemRequest>();
                    batch.BatchUpdateKpiAchievementItemRequest.Add(prepare);
                }
                response = _kpiAchievementService.BatchUpdateKpiAchievements(batch);
            }
            return(response);
        }
Esempio n. 2
0
        private BaseResponse UpdateKpiAchievement(IEnumerable <ConfigurationViewModel.Item> data)
        {
            var response = new BaseResponse {
                IsSuccess = false, Message = "Data Not Valid"
            };

            if (data != null)
            {
                var batch = new BatchUpdateKpiAchievementRequest();
                foreach (var datum in data)
                {
                    var prepare = new UpdateKpiAchievementItemRequest()
                    {
                        Id = datum.Id, KpiId = datum.KpiId, Periode = datum.Periode, Value = datum.Value, PeriodeType = datum.PeriodeType, Remark = datum.Remark, UpdateFrom = "KPIAchievementForm"
                    };                                                                                                                                                                                                                                 // data.MapTo<UpdateKpiAchievementItemRequest>();
                    batch.BatchUpdateKpiAchievementItemRequest.Add(prepare);
                }
                batch.ControllerName = "File";
                batch.ActionName     = "ProcessFile";
                batch.UserId         = UserProfile().UserId;
                response             = _kpiAchievementService.BatchUpdateKpiAchievements(batch);
            }
            return(response);
        }
Esempio n. 3
0
        public BaseResponse BatchUpdateKpiAchievements(BatchUpdateKpiAchievementRequest request)
        {
            var response = new BaseResponse();

            try
            {
                int i = 0;
                foreach (var item in request.BatchUpdateKpiAchievementItemRequest)
                {
                    var kpiAchievement = item.MapTo <KpiAchievement>();
                    var exist          = DataContext.KpiAchievements.FirstOrDefault(x => x.Kpi.Id == item.KpiId && x.PeriodeType == item.PeriodeType && x.Periode == item.Periode && x.Value == item.Value && x.Remark == item.Remark);
                    //skip no change value
                    if (exist != null)
                    {
                        continue;
                    }
                    var attachedEntity = DataContext.KpiAchievements.FirstOrDefault(x => x.Kpi.Id == item.KpiId && x.PeriodeType == item.PeriodeType && x.Periode == item.Periode);
                    if (attachedEntity != null)
                    {
                        kpiAchievement.Id = attachedEntity.Id;
                    }
                    //jika tidak ada perubahan di skip aja
                    //if (existing.Value.Equals(item.Value) && existing.Periode.Equals(item.Periode) && existing.Kpi.Id.Equals(item.KpiId) && existing.PeriodeType.Equals(item.PeriodeType)) {
                    //    break;
                    //}
                    if (kpiAchievement.Id != 0)
                    {
                        //var attachedEntity = DataContext.KpiAchievements.Find(item.Id);
                        if (attachedEntity != null && DataContext.Entry(attachedEntity).State != EntityState.Detached)
                        {
                            DataContext.Entry(attachedEntity).State = EntityState.Detached;
                        }
                        DataContext.KpiAchievements.Attach(kpiAchievement);
                        DataContext.Entry(kpiAchievement).State = EntityState.Modified;
                    }
                    else
                    {
                        kpiAchievement.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == item.KpiId);
                        DataContext.KpiAchievements.Add(kpiAchievement);
                    }
                    i++;
                }
                DataContext.SaveChanges();
                response.IsSuccess = true;
                if (i > 0)
                {
                    response.Message = string.Format("{0}  KPI Achievement items has been updated successfully", i.ToString());
                }
                else
                {
                    response.Message = "File Successfully Parsed, but no data changed!";
                }
            }
            catch (InvalidOperationException invalidOperationException)
            {
                response.Message = invalidOperationException.Message;
            }
            catch (ArgumentNullException argumentNullException)
            {
                response.Message = argumentNullException.Message;
            }
            return(response);
        }
Esempio n. 4
0
        //public BaseResponse BatchUpdateKpiAchievements(BatchUpdateKpiAchievementRequest request)
        //{
        //    var response = new BaseResponse();
        //    try
        //    {
        //        int i = 0;
        //        foreach (var item in request.BatchUpdateKpiAchievementItemRequest)
        //        {
        //            var kpiAchievement = item.MapTo<KpiAchievement>();
        //            var exist = DataContext.KpiAchievements.FirstOrDefault(x => x.Kpi.Id == item.KpiId && x.PeriodeType == item.PeriodeType && x.Periode == item.Periode && x.Value == item.RealValue && x.Remark == item.Remark);
        //            //skip no change value
        //            if (exist != null)
        //            {
        //                continue;
        //            }
        //            var attachedEntity = DataContext.KpiAchievements.FirstOrDefault(x => x.Kpi.Id == item.KpiId && x.PeriodeType == item.PeriodeType && x.Periode == item.Periode);
        //            if (attachedEntity != null)
        //            {
        //                kpiAchievement.Id = attachedEntity.Id;
        //            }
        //            //jika tidak ada perubahan di skip aja
        //            //if (existing.Value.Equals(item.Value) && existing.Periode.Equals(item.Periode) && existing.Kpi.Id.Equals(item.KpiId) && existing.PeriodeType.Equals(item.PeriodeType)) {
        //            //    break;
        //            //}
        //            if (kpiAchievement.Id != 0)
        //            {
        //                //var attachedEntity = DataContext.KpiAchievements.Find(item.Id);
        //                if (attachedEntity != null && DataContext.Entry(attachedEntity).State != EntityState.Detached)
        //                {
        //                    DataContext.Entry(attachedEntity).State = EntityState.Detached;
        //                }
        //                DataContext.KpiAchievements.Attach(kpiAchievement);
        //                DataContext.Entry(kpiAchievement).State = EntityState.Modified;
        //            }
        //            else
        //            {
        //                kpiAchievement.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == item.KpiId);
        //                DataContext.KpiAchievements.Add(kpiAchievement);
        //            }
        //            i++;
        //        }
        //        DataContext.SaveChanges();
        //        response.IsSuccess = true;
        //        if (i > 0)
        //        {
        //            response.Message = string.Format("{0}  KPI Achievement items has been updated successfully", i.ToString());
        //        }
        //        else
        //        {
        //            response.Message = "File Successfully Parsed, but no data changed!";
        //        }


        //    }
        //    catch (InvalidOperationException invalidOperationException)
        //    {
        //        response.Message = invalidOperationException.Message;
        //    }
        //    catch (ArgumentNullException argumentNullException)
        //    {
        //        response.Message = argumentNullException.Message;
        //    }
        //    return response;
        //}

        public BaseResponse BatchUpdateKpiAchievements(BatchUpdateKpiAchievementRequest request)
        {
            var response = new BaseResponse();

            try
            {
                int deletedCounter = 0;
                int updatedCounter = 0;
                int addedCounter   = 0;
                int skippedCounter = 0;
                foreach (var item in request.BatchUpdateKpiAchievementItemRequest)
                {
                    if (!string.IsNullOrEmpty(item.Value))
                    {
                        var existedKpiAchievement =
                            DataContext.KpiAchievements.FirstOrDefault(
                                x =>
                                x.Kpi.Id == item.KpiId && x.PeriodeType == item.PeriodeType && x.Periode == item.Periode);


                        if (existedKpiAchievement != null)
                        {
                            if (item.Value.Equals("-") || item.Value.ToLowerInvariant().Equals("null"))
                            {
                                DataContext.KpiAchievements.Remove(existedKpiAchievement);
                                deletedCounter++;
                            }
                            else
                            {
                                if (existedKpiAchievement.Value.Equals(item.RealValue))
                                {
                                    skippedCounter++;
                                }
                                else
                                {
                                    existedKpiAchievement.Value = item.RealValue;
                                    DataContext.Entry(existedKpiAchievement).State = EntityState.Modified;
                                    updatedCounter++;
                                }
                            }
                        }
                        else
                        {
                            var kpiAchievement = item.MapTo <KpiAchievement>();
                            if (kpiAchievement.Value.HasValue)
                            {
                                kpiAchievement.Kpi = DataContext.Kpis.FirstOrDefault(x => x.Id == item.KpiId);
                                DataContext.KpiAchievements.Add(kpiAchievement);
                                addedCounter++;
                            }
                        }
                    }
                }
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message   = string.Format("{0} data has been added, {1} data has been updated, {2} data has been removed, {3} data didn't change", addedCounter.ToString()
                                                   , updatedCounter.ToString(), deletedCounter.ToString(), skippedCounter.ToString());
            }
            catch (InvalidOperationException invalidOperationException)
            {
                response.Message = invalidOperationException.Message;
            }
            catch (ArgumentNullException argumentNullException)
            {
                response.Message = argumentNullException.Message;
            }
            return(response);
        }