public async Task <Result <LinkageServiceRoomResponse> > Handle(LinkageServiceRoomCommand request, CancellationToken cancellationToken) { using (_queueUnitOfWork) { try { if (request.Linkagelist != null) { if (request.Linkagelist.Count > 0) { foreach (var link in request.Linkagelist) { var srvroom = await _queueUnitOfWork.Repository <ServiceRoom>().Get(x => x.ServiceAreaid == link.ServiceAreaId && x.ServicePointId == link.ServicePointId && x.RoomId == link.Roomid).FirstOrDefaultAsync(); if (srvroom != null) { srvroom.RoomId = link.Roomid; srvroom.ServiceAreaid = link.ServiceAreaId; srvroom.ServicePointId = link.ServicePointId; srvroom.DeleteFlag = false; srvroom.UpdateDate = DateTime.Now; srvroom.UpdatedBy = link.UserId; _queueUnitOfWork.Repository <ServiceRoom>().Update(srvroom); await _queueUnitOfWork.SaveAsync(); } else { ServiceRoom rm = new ServiceRoom(); rm.RoomId = link.Roomid; rm.ServiceAreaid = link.ServiceAreaId; rm.ServicePointId = link.ServicePointId; rm.Active = true; rm.CreateDate = DateTime.Now; rm.CreatedBy = link.UserId; await _queueUnitOfWork.Repository <ServiceRoom>().AddAsync(rm); await _queueUnitOfWork.SaveAsync(); } } } } return(Result <LinkageServiceRoomResponse> .Valid(new LinkageServiceRoomResponse() { Message = "The linkage was added successfully" })); } catch (Exception ex) { Log.Error(ex.Message); return(Result <LinkageServiceRoomResponse> .Invalid(ex.Message)); } } }
public async Task <IActionResult> AddRoomLinkage([FromBody] LinkageServiceRoomCommand command) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.Select(x => x.Errors))); } var response = await _mediator.Send(command, HttpContext.RequestAborted); if (!response.IsValid) { return(BadRequest(response)); } return(Ok(response.Value)); }