public async Task <UpdatePurchaseDetails_RS> UpdatePurchaseDetails(UpdatePurchaseDetails_RQ objUpdBookingRQ) { UpdatePurchaseDetails_RS objUpdBookingRS = new UpdatePurchaseDetails_RS(); objUpdBookingRS = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceUpdate:UpdatePurchaseDetails"), objUpdBookingRQ, typeof(UpdatePurchaseDetails_RS)); return(objUpdBookingRS); }
public async Task <UpdatePurchaseDetails_RS> UpdatePurchaseDetails(UpdatePurchaseDetails_RQ request, IConfiguration _configuration, UserCookieDetail userdetails) { UpdatePurchaseDetails_RS result = new UpdatePurchaseDetails_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 (UpdatePurchaseDetails upd in request.UpdatePurchaseDetails) { 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.UpdatePurchaseDetails(request); if (result != null && result.UpdatePurchaseDetails.Count > 0) { result.ResponseStatus.Status = "Success"; } else { result.ResponseStatus.Status = "Failure"; } result.Request = request; return(result); }
public async Task <IActionResult> UpdatePurchaseDetails([FromBody] UpdatePurchaseDetails_RQ requestbody) { var response = new UpdatePurchaseDetails_RS(); //bool isRequestOK = true; 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.UpdatePurchaseDetails.Count > 0) { foreach (UpdatePurchaseDetails request in requestbody.UpdatePurchaseDetails) { if (!string.IsNullOrWhiteSpace(request.Position_Id)) { Guid Position_Id = Guid.Empty; Guid PBR_Id = Guid.Empty; Guid PP_Id = Guid.Empty; if (!Guid.TryParse(request.Position_Id, out Position_Id) && !Guid.TryParse(request.PBR_Id, out PBR_Id) && !Guid.TryParse(request.PP_Id, out PP_Id)) { response.ResponseStatus.Status = "Failure"; if (!Guid.TryParse(request.Position_Id, out Position_Id)) { response.ResponseStatus.ErrorMessage = "InValid Position_Id " + Convert.ToString(request.Position_Id) + ". "; } if (!Guid.TryParse(request.PBR_Id, out PBR_Id)) { response.ResponseStatus.ErrorMessage += "InValid PBR_Id " + Convert.ToString(request.PBR_Id); } if (!Guid.TryParse(request.PP_Id, out PP_Id)) { response.ResponseStatus.ErrorMessage += "InValid PP_Id " + Convert.ToString(request.PP_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.UpdatePurchaseDetails(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)); }