public async Task <IActionResult> UpsertEquipment([FromBody] UpsertEquipmentCmd request) { try { var result = await _service.UpsertEquipment(request); return(Ok(result)); } catch (BusinessLogicException ex) { return(BadRequest(new Response { Status = false, Message = ex.Message })); } catch (Exception e) { return(BadRequest(new Response { Status = false, Message = e.StackTrace })); } }
public async Task <Response> UpsertEquipment(UpsertEquipmentCmd request) { /////////////////////////////////////// //var technicalCode = await _context.Equipment.AnyAsync(x => x.TechnicalCode == request.TechnicalCode); //if (technicalCode) //{ // throw new BusinessLogicException("کد فنی قبلا استفاده شده است "); //} //var amval = await _context.Equipment.AnyAsync(x => x.Amval == request.Amval); //if (amval) //{ // throw new BusinessLogicException("کداموال قبلا استفاده شده است "); //} ////////////////////////////////////////// var brand = await _context.EquipmentBrands.SingleOrDefaultAsync(x => x.Id == request.BrandId); var type = await _context.EquipmentTypes.SingleOrDefaultAsync(x => x.Id == request.TypeId); var place = await _context.EquipmentPlaces.SingleOrDefaultAsync(x => x.Id == request.PlaceId); ///updat insert if (!string.IsNullOrEmpty(request.Id)) { var item = await _context.Equipment.SingleOrDefaultAsync(x => x.Id == request.Id); if (item == null) { throw new BusinessLogicException("رکوردی یافت نشد"); } item = _mapper.Map <Equipment>(request); if (brand != null) { item.Brand = brand; } if (type != null) { item.Type = type; } if (place != null) { item.Place = place; } item.IsActive = true; _context.Equipment.Update(item); } else { var item = new Equipment(); item = _mapper.Map <Equipment>(request); if (brand != null) { item.Brand = brand; } if (type != null) { item.Type = type; } if (place != null) { item.Place = place; } item.IsActive = true; item.Id = Guid.NewGuid().ToString(); item.CreatedAt = DateTime.Now; await _context.Equipment.AddAsync(item); } await _context.SaveChangesAsync(); return(new Response { Status = true, Message = "success" }); }