Example #1
0
        public CreateKpiResponse Create(CreateKpiRequest request)
        {
            var response = new CreateKpiResponse();

            try
            {
                var action = request.MapTo <BaseAction>();
                var kpi    = request.MapTo <Kpi>();
                if (request.PillarId.HasValue)
                {
                    kpi.Pillar = DataContext.Pillars.FirstOrDefault(x => x.Id == request.PillarId);
                }
                if (request.GroupId.HasValue)
                {
                    kpi.Group = DataContext.Groups.FirstOrDefault(x => x.Id == request.GroupId);
                }
                if (request.RoleGroupId.HasValue)
                {
                    kpi.RoleGroup = DataContext.RoleGroups.FirstOrDefault(x => x.Id == request.RoleGroupId.Value);
                }
                if (request.MeasurementId.HasValue)
                {
                    kpi.Measurement = DataContext.Measurements.FirstOrDefault(x => x.Id == request.MeasurementId);
                }
                kpi.Level     = DataContext.Levels.FirstOrDefault(x => x.Id == request.LevelId);
                kpi.Type      = DataContext.Types.FirstOrDefault(x => x.Id == request.TypeId);
                kpi.Method    = DataContext.Methods.FirstOrDefault(x => x.Id == request.MethodId);
                kpi.CreatedBy = DataContext.Users.FirstOrDefault(x => x.Id == request.UserId);
                if (request.RelationModels.Count > 0)
                {
                    var relation = new List <KpiRelationModel>();
                    foreach (var item in request.RelationModels)
                    {
                        if (item.KpiId != 0)
                        {
                            var kpiRelation = DataContext.Kpis.FirstOrDefault(x => x.Id == item.KpiId);
                            relation.Add(new KpiRelationModel
                            {
                                Kpi    = kpiRelation,
                                Method = item.Method
                            });
                        }
                    }
                    kpi.RelationModels = relation;
                }

                DataContext.Kpis.Add(kpi);
                DataContext.SaveChanges(action);
                response.IsSuccess = true;
                response.Message   = "KPI item has been added successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return(response);
        }
Example #2
0
        public CreateKpiResponse Create(CreateKpiRequest request)
        {
            var response = new CreateKpiResponse();
            try
            {
                var kpi = request.MapTo<Kpi>();
                if (request.PillarId.HasValue)
                {
                    kpi.Pillar = DataContext.Pillars.FirstOrDefault(x => x.Id == request.PillarId);
                }
                if (request.GroupId.HasValue)
                {
                    kpi.Group = DataContext.Groups.FirstOrDefault(x => x.Id == request.GroupId);
                }
                if (request.RoleGroupId.HasValue)
                {
                    kpi.RoleGroup = DataContext.RoleGroups.FirstOrDefault(x => x.Id == request.RoleGroupId.Value);
                }
                if (request.MeasurementId.HasValue)
                {
                    kpi.Measurement = DataContext.Measurements.FirstOrDefault(x => x.Id == request.MeasurementId);
                }
                kpi.Level = DataContext.Levels.FirstOrDefault(x => x.Id == request.LevelId);
                kpi.Type = DataContext.Types.FirstOrDefault(x => x.Id == request.TypeId);
                kpi.Method = DataContext.Methods.FirstOrDefault(x => x.Id == request.MethodId);
                if (request.RelationModels.Count > 0)
                {
                    var relation = new List<KpiRelationModel>();
                    foreach (var item in request.RelationModels)
                    {
                        if (item.KpiId != 0)
                        {
                            var kpiRelation = DataContext.Kpis.FirstOrDefault(x => x.Id == item.KpiId);
                            relation.Add(new KpiRelationModel
                            {
                                Kpi = kpiRelation,
                                Method = item.Method
                            });
                        }
                    }
                    kpi.RelationModels = relation;
                }

                DataContext.Kpis.Add(kpi);
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message = "KPI item has been added successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return response;
        }