Exemple #1
0
        public UpdatePmsSummaryResponse UpdatePmsSummary(UpdatePmsSummaryRequest request)
        {
            var response = new UpdatePmsSummaryResponse();

            try
            {
                var updatedPmsSummary = request.MapTo <PmsSummary>();
                var existedPmsSummary = DataContext.PmsSummaries
                                        .Where(x => x.Id == request.Id)
                                        .Include(x => x.ScoreIndicators)
                                        .Single();
                var existedPmsSummaryEntry = DataContext.Entry(existedPmsSummary);
                existedPmsSummaryEntry.CurrentValues.SetValues(updatedPmsSummary);

                foreach (var scoreIndicator in updatedPmsSummary.ScoreIndicators)
                {
                    var existedScoreIndicator = existedPmsSummary.ScoreIndicators.SingleOrDefault(x => x.Id == scoreIndicator.Id && x.Id != 0);
                    if (existedScoreIndicator != null)
                    {
                        var scoreIndicatorEntry = DataContext.Entry(existedScoreIndicator);
                        scoreIndicatorEntry.CurrentValues.SetValues(scoreIndicator);
                    }
                    else
                    {
                        scoreIndicator.Id = 0;
                        existedPmsSummary.ScoreIndicators.Add(scoreIndicator);
                    }
                }

                foreach (var item in existedPmsSummary.ScoreIndicators.Where(x => x.Id != 0).ToList())
                {
                    if (updatedPmsSummary.ScoreIndicators.All(x => x.Id != item.Id))
                    {
                        DataContext.ScoreIndicators.Remove(item);
                    }
                }

                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message   = "Pms Summary has been updated";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return(response);
        }
Exemple #2
0
        public UpdatePmsSummaryResponse UpdatePmsSummary(UpdatePmsSummaryRequest request)
        {
            var response = new UpdatePmsSummaryResponse();
            try
            {
                var updatedPmsSummary = request.MapTo<PmsSummary>();
                var existedPmsSummary = DataContext.PmsSummaries
                    .Where(x => x.Id == request.Id)
                    .Include(x => x.ScoreIndicators)
                    .Single();
                var existedPmsSummaryEntry = DataContext.Entry(existedPmsSummary);
                existedPmsSummaryEntry.CurrentValues.SetValues(updatedPmsSummary);

                foreach (var scoreIndicator in updatedPmsSummary.ScoreIndicators)
                {
                    var existedScoreIndicator = existedPmsSummary.ScoreIndicators.SingleOrDefault(x => x.Id == scoreIndicator.Id && x.Id != 0);
                    if (existedScoreIndicator != null)
                    {
                        var scoreIndicatorEntry = DataContext.Entry(existedScoreIndicator);
                        scoreIndicatorEntry.CurrentValues.SetValues(scoreIndicator);
                    }
                    else
                    {
                        scoreIndicator.Id = 0;
                        existedPmsSummary.ScoreIndicators.Add(scoreIndicator);
                    }
                }

                foreach (var item in existedPmsSummary.ScoreIndicators.Where(x => x.Id != 0).ToList())
                {
                    if (updatedPmsSummary.ScoreIndicators.All(x => x.Id != item.Id))
                    {
                        DataContext.ScoreIndicators.Remove(item);
                    }
                }

                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message = "Pms Summary has been updated";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return response;
        }
Exemple #3
0
        public UpdatePmsSummaryResponse UpdatePmsSummary(UpdatePmsSummaryRequest request)
        {
            var response = new UpdatePmsSummaryResponse();
            try
            {
                var isExisted = DataContext.PmsSummaries.FirstOrDefault(x => x.IsActive);
                if (request.IsActive && isExisted != null && isExisted.Id != request.Id)
                {
                    response.Message = string.Format(@"There is one Pms Summary has actived already, You have to unactivate first.");
                    return response;
                }

                var updatedPmsSummary = request.MapTo<PmsSummary>();
                var existedPmsSummary = DataContext.PmsSummaries
                    .Where(x => x.Id == request.Id)
                    .Include(x => x.ScoreIndicators)
                    .Single();

                string expression;
                bool isExpressionValid = IsExpressionValid(updatedPmsSummary.ScoreIndicators, out expression);
                if (!isExpressionValid)
                {
                    response.Message = string.Format(@"This Score Indicator ({0}) Is Not Valid", expression);
                    return response;
                }

                var existedPmsSummaryEntry = DataContext.Entry(existedPmsSummary);
                existedPmsSummaryEntry.CurrentValues.SetValues(updatedPmsSummary);

                foreach (var scoreIndicator in updatedPmsSummary.ScoreIndicators)
                {
                    var existedScoreIndicator = existedPmsSummary.ScoreIndicators.SingleOrDefault(x => x.Id == scoreIndicator.Id && x.Id != 0);
                    if (existedScoreIndicator != null)
                    {
                        var scoreIndicatorEntry = DataContext.Entry(existedScoreIndicator);
                        scoreIndicatorEntry.CurrentValues.SetValues(scoreIndicator);
                    }
                    else
                    {
                        scoreIndicator.Id = 0;
                        existedPmsSummary.ScoreIndicators.Add(scoreIndicator);
                    }
                }

                foreach (var item in existedPmsSummary.ScoreIndicators.Where(x => x.Id != 0).ToList())
                {
                    if (updatedPmsSummary.ScoreIndicators.All(x => x.Id != item.Id))
                    {
                        DataContext.ScoreIndicators.Remove(item);
                    }
                }

                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message = "Pms Summary has been updated";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return response;
        }