コード例 #1
0
        public async Task <UpdateOperationDetails_RS> UpdateOperationDetails(UpdateOperationDetails_RQ objUpdBookingRQ)
        {
            UpdateOperationDetails_RS objUpdBookingRS = new UpdateOperationDetails_RS();

            objUpdBookingRS = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceUpdate:UpdateOperationDetails"), objUpdBookingRQ, typeof(UpdateOperationDetails_RS));

            return(objUpdBookingRS);
        }
コード例 #2
0
        public async Task <UpdateOperationDetails_RS> UpdateOperationDetails(UpdateOperationDetails_RQ request, IConfiguration _configuration, UserCookieDetail userdetails)
        {
            UpdateOperationDetails_RS result = new UpdateOperationDetails_RS();

            common.GetUserCompanyType(ref userdetails);
            var System = _MongoContext.mSystem.AsQueryable().FirstOrDefault(); //.Where(a => Users.Company_Id == a.CoreCompany_Id)

            FilterDefinition <mBookings>         filter;
            FilterDefinition <mBookingPositions> filterPos;

            filter    = Builders <mBookings> .Filter.Empty;
            filterPos = Builders <mBookingPositions> .Filter.Empty;

            foreach (UpdateOperationDetails upd in request.UpdateOperationDetails)
            {
                filter    = Builders <mBookings> .Filter.Empty;
                filterPos = Builders <mBookingPositions> .Filter.Empty;
                if (upd.Position_Id != null)
                {
                    string curPos_Id = upd.Position_Id.ToString().ToLower();
                    filterPos = Builders <mBookingPositions> .Filter.Where(f => curPos_Id == f.Position_Id);

                    string Booking_Id = (await _MongoContext.mBookingPositions.Find(filterPos).Project(p => p.Booking_Id).FirstOrDefaultAsync());
                    Booking_Id = Booking_Id.ToLower();
                    filter     = Builders <mBookings> .Filter.Where(f => f.BookingId == Booking_Id);

                    string AgentId   = (await _MongoContext.mBookings.Find(filter).Project(p => p.AgentId).FirstOrDefaultAsync());
                    string Suppliers = (await _MongoContext.mBookings.Find(filter).Project(p => p.Suppliers).FirstOrDefaultAsync());

                    if (userdetails.Company_Id.ToString().ToLower() != System.CoreCompany_Id.ToString().ToLower())
                    {
                        if ((userdetails.IsAgent ?? false))
                        {
                            if (userdetails.Company_Id.Trim().ToLower() != AgentId.Trim().ToLower())
                            {
                                result.ResponseStatus.Status       = "Failure";
                                result.ResponseStatus.ErrorMessage = "User is not authorised to update this position " + curPos_Id;
                                return(result);
                            }
                        }
                        else if ((userdetails.IsSupplier ?? false))
                        {
                            if (!Suppliers.Contains("," + userdetails.Company_Id + ","))
                            {
                                result.ResponseStatus.Status       = "Failure";
                                result.ResponseStatus.ErrorMessage = "User is not authorised to update this position " + curPos_Id;
                                return(result);
                            }
                        }
                    }
                }
            }

            VGER_Communicator.Providers.BookingProviders provider = new VGER_Communicator.Providers.BookingProviders(_configuration);
            result = await provider.UpdateOperationDetails(request);

            if (result != null && result.UpdateOperationDetails.Count > 0)
            {
                result.ResponseStatus.Status = "Success";
            }
            else
            {
                result.ResponseStatus.Status = "Failure";
            }
            result.Request = request;
            return(result);
        }
コード例 #3
0
        public async Task <IActionResult> UpdateOperationDetails([FromBody] UpdateOperationDetails_RQ requestbody)
        {
            var response = new UpdateOperationDetails_RS();

            try
            {
                if (!ModelState.IsValid)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Request is not valid";
                    return(BadRequest(response.ResponseStatus));
                }
                else
                {
                    if (requestbody != null)
                    {
                        var userdetails = Helpers.CreateToken.ReadToken(HttpContext);

                        if (requestbody.UpdateOperationDetails.Count > 0)
                        {
                            foreach (UpdateOperationDetails request in requestbody.UpdateOperationDetails)
                            {
                                if (!string.IsNullOrWhiteSpace(request.Position_Id))
                                {
                                    Guid Position_Id = Guid.Empty;
                                    if (!Guid.TryParse(request.Position_Id, out Position_Id))
                                    {
                                        response.ResponseStatus.Status       = "Failure";
                                        response.ResponseStatus.ErrorMessage = "InValid Position_Id " + Convert.ToString(request.Position_Id);
                                        return(BadRequest(response.ResponseStatus));
                                    }
                                }
                                else
                                {
                                    response.ResponseStatus.Status       = "Failure";
                                    response.ResponseStatus.ErrorMessage = "Position_Id cannot be blank";
                                    return(BadRequest(response.ResponseStatus));
                                }
                            }
                        }
                        else
                        {
                            response.ResponseStatus.Status       = "Failure";
                            response.ResponseStatus.ErrorMessage = "Blank Request";
                            return(BadRequest(response.ResponseStatus));
                        }
                        var result = await _bookingRepository.UpdateOperationDetails(requestbody, _configuration, userdetails);

                        if (result != null)
                        {
                            response = result;
                            if (result.ResponseStatus.Status == "Failure")
                            {
                                //return NotFound(response.ResponseStatus);
                                return(Unauthorized());
                            }
                            else
                            {
                                response.ResponseStatus.Status = "Success";
                            }
                        }
                        else
                        {
                            response.ResponseStatus.Status       = "Success";
                            response.ResponseStatus.ErrorMessage = "No Records Found.";
                            return(NotFound(response.ResponseStatus));
                        }
                    }
                    else
                    {
                        response.ResponseStatus.Status       = "Failure";
                        response.ResponseStatus.ErrorMessage = "Position_Ids can not be blank.";
                        return(BadRequest(response.ResponseStatus));
                    }
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An error occurs " + ex.Message.ToString();
                return(BadRequest(response.ResponseStatus));
            }
            return(Ok(response));
        }