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));
                }
            }
        }
Пример #2
0
        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));
        }