public async Task <ExecutionResponse <MetricModel> > CreateMetric(UpdateMetricModel model) { var oldMetric = _metricQueryRepo.GetAll().FirstOrDefault(x => x.Name.Trim().ToLower() == model.Name.Trim().ToLower() && x.CompanyId == CurrentCompanyId); if (oldMetric != null) { throw new Exception("Metric already exists"); } //save metric info var metric = new Metric { Name = model.Name, DepartmentId = model.DepartmentId, Description = model.Description, CompanyId = CurrentCompanyId, CreateById = _httpContext.GetCurrentSSOUserId() }; await _metricCommandRepo.InsertAsync(metric); await _metricCommandRepo.SaveChangesAsync(); return(new ExecutionResponse <MetricModel> { ResponseCode = ResponseCode.Ok, ResponseData = _mapper.Map <MetricModel>(metric) }); }
public async Task <ExecutionResponse <MetricModel> > UpdateMetric(UpdateMetricModel model) { var metric = _metricQueryRepo.GetAll().FirstOrDefault(x => x.Id == model.Id && x.CompanyId == CurrentCompanyId); if (metric == null) { return new ExecutionResponse <MetricModel> { ResponseCode = ResponseCode.NotFound, Message = "No record found" } } ; if (!_departmentQueryRepo.GetAll().Any(d => d.Id == model.DepartmentId && d.CompanyId == CurrentCompanyId)) { return new ExecutionResponse <MetricModel> { ResponseCode = ResponseCode.NotFound, Message = "Department does not exist" } } ; //update metric record in db metric.Name = model.Name; metric.Description = model.Description; metric.DepartmentId = model.DepartmentId; await _metricCommandRepo.UpdateAsync(metric); await _metricCommandRepo.SaveChangesAsync(); return(new ExecutionResponse <MetricModel> { ResponseCode = ResponseCode.Ok, ResponseData = _mapper.Map <MetricModel>(metric) }); }