Exemplo n.º 1
0
        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)
            });
        }
Exemplo n.º 2
0
        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)
            });
        }