public async Task <EquipmentResponse> AddEquipment(EquipmentCreateRequest values)
        {
            EquipmentResponse _response = new EquipmentResponse();

            try
            {
                EntityEntry <EquipmentEntity> result = await _context.Equipment.AddAsync(new EquipmentEntity
                {
                    EquipmentGuid = Guid.NewGuid().ToString(),
                    ClinicGuid    = values.ClinicGuid,
                    Name          = values.Name,
                    Quantity      = values.Quantity,
                    UnitPrice     = values.UnitPrice,
                    RateOfUse     = values.RateOfUse,
                    DateofSupply  = values.DateofSupply,
                    Created       = DateTime.Now.ToUniversalTime(),
                    Updated       = DateTime.Now.ToUniversalTime(),
                    IsDeleted     = false,
                });

                if (result.Entity.Validate(validationContext: null).Count() == 0)
                {
                    await _context.SaveChangesAsync();

                    _response.Code         = "E000";
                    _response.Message      = _localizer["success"];
                    _response.DataCount    = 1;
                    _response.ResponseDate = DateTime.Now.ToUniversalTime();
                    _response.Results.Add(result.Entity);
                }
                else
                {
                    _response.Code    = "E001";
                    _response.Message = _localizer["check_values"];
                    foreach (System.ComponentModel.DataAnnotations.ValidationResult item in result.Entity.Validate(validationContext: null).ToList())
                    {
                        _response.Message += item.ErrorMessage + " ";
                    }
                    _response.DataCount    = 0;
                    _response.ResponseDate = DateTime.Now.ToUniversalTime();
                    _response.Results.Add(result.Entity);
                }
            }
            catch (Exception ex)
            {
                _response.Code         = "E999";
                _response.Message      = ex.Message;
                _response.DataCount    = 0;
                _response.ResponseDate = DateTime.Now.ToUniversalTime();
                _response.Results      = null;
            }
            return(_response);
        }
        public async Task <IActionResult> PostEquipment([FromForm] EquipmentCreateRequest request)
        {
            var identityClaimNum = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var dto = _mapper.Map <EquipmentCreateDTO>(request);

            dto.OwnerId    = identityClaimNum;
            dto.CreatedUtc = DateTime.Now;

            if (await _manager.CreateEquipment(dto))
            {
                return(StatusCode(201));
            }

            throw new Exception();
        }
Esempio n. 3
0
        public async Task <OneObjectResponse <EquipmentView> > PostAsync([FromBody] EquipmentCreateRequest request)
        {
            try
            {
                await semaphore.WaitAsync();

                var type = await CheckAndGetEquipmentTypeAsync(request.EquipmentTypeId);
                await CheckNotExist(request.SerialNumber);

                var newEquipment = mapper.Map <Equipment>(request);
                newEquipment.Number = type.LastNumber++;
                if (request.Children?.Count > 0)
                {
                    newEquipment.Children =
                        await dbContext
                        .Equipments
                        .Where(eq => request.Children.Contains(eq.Id))
                        .ToListAsync();
                }

                if (newEquipment.Children?.Count != request.Children?.Count)
                {
                    throw ResponseStatusCode.IncorrectEquipmentIds.ToApiException();
                }

                await dbContext.Equipments.AddAsync(newEquipment);

                await dbContext.SaveChangesAsync();

                return(mapper.Map <EquipmentView>(newEquipment));
            }
            finally
            {
                semaphore.Release();
            }
        }
Esempio n. 4
0
 public async Task <EquipmentResponse> Post([FromBody] EquipmentCreateRequest values)
 {
     return(await _equipment.AddEquipment(values));
 }