public async Task <DocumentStoreSetRes> SetDocumentStore([FromBody] DocumentStoreSetReq request) { var response = new DocumentStoreSetRes(); try { if (request != null) { response = await _documentStoreRepository.SetDocumentStore(request); } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Details can not be blank."; } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "An Error Occurs :- " + ex.Message; } return(response); }
public async Task <DocumentStoreSetRes> SetDocumentStore(DocumentStoreSetReq request) { var res = new DocumentStoreSetRes() { ResponseStatus = new ResponseStatus() }; try { if (request != null && request.mDocumentStore != null) { FilterDefinition <mDocumentStore> filter; filter = Builders <mDocumentStore> .Filter.Empty; int c = 0; if (!string.IsNullOrEmpty(request.mDocumentStore.BookingNumber) && !string.IsNullOrEmpty(request.mDocumentStore.PositionId)) { FilterDefinition <mDocumentStore> filterCnt; filterCnt = Builders <mDocumentStore> .Filter.Empty; filterCnt = filterCnt & Builders <mDocumentStore> .Filter.Where(f => f.PositionId == request.mDocumentStore.PositionId && f.BookingNumber == request.mDocumentStore.BookingNumber); var mDocumentStore = await _MongoContext.mDocumentStore.Find(filterCnt).ToListAsync(); if (string.IsNullOrEmpty(request.mDocumentStore.Document_Id)) { c = mDocumentStore.Count + 1; var booking = _MongoContext.Bookings.AsQueryable().Where(a => a.BookingNumber == request.mDocumentStore.BookingNumber).FirstOrDefault(); var pos = booking.Positions.Where(b => b.Position_Id == request.mDocumentStore.PositionId).FirstOrDefault(); request.mDocumentStore.DocumentReference = request.mDocumentStore.BookingNumber.ToString() + "-" + pos.GRIDINFO.Split(' ')[0] + "-" + c.ToString(); } else { var docres = mDocumentStore.Where(a => a.Document_Id == request.mDocumentStore.Document_Id).FirstOrDefault(); if (docres != null) { request.mDocumentStore.DocumentReference = docres.DocumentReference; } } } if (!string.IsNullOrEmpty(request.mDocumentStore.Document_Id)) { filter = filter & Builders <mDocumentStore> .Filter.Where(f => f.Document_Id == request.mDocumentStore.Document_Id); var mDocumentStore = await _MongoContext.mDocumentStore.Find(filter).FirstOrDefaultAsync(); //Set System Company Id string SystemCompanyId = string.Empty; if (!string.IsNullOrWhiteSpace(request.mDocumentStore.BookingNumber)) { SystemCompanyId = _MongoContext.Bookings.AsQueryable().Where(x => x.BookingNumber == request.mDocumentStore.BookingNumber).FirstOrDefault()?.SystemCompany_Id; } else if (!string.IsNullOrWhiteSpace(request.mDocumentStore.QRFID)) { SystemCompanyId = _MongoContext.mQRFPrice.AsQueryable().Where(x => x.QRFID == request.mDocumentStore.QRFID && x.IsCurrentVersion == true).OrderByDescending(y => y.VersionId).FirstOrDefault()?.SystemCompany_Id; } request.mDocumentStore.SystemCompany_Id = SystemCompanyId; if (mDocumentStore != null) { request.mDocumentStore.Edit_Date = DateTime.Now; var docstore = await _MongoContext.mDocumentStore.FindOneAndUpdateAsync(a => a.Document_Id == request.mDocumentStore.Document_Id, Builders <mDocumentStore> .Update. Set("QRFID", request.mDocumentStore.QRFID). Set("PositionId", request.mDocumentStore.PositionId). Set("BookingNumber", request.mDocumentStore.BookingNumber). Set("AlternateServiceId", request.mDocumentStore.AlternateServiceId). Set("SupplierId", request.mDocumentStore.SupplierId). Set("ClientId", request.mDocumentStore.ClientId). Set("QRFPriceId", request.mDocumentStore.QRFPriceId). Set("To", request.mDocumentStore.To). Set("From", request.mDocumentStore.From). Set("CC", request.mDocumentStore.CC). Set("BCC", request.mDocumentStore.BCC). Set("Subject", request.mDocumentStore.Subject). Set("Body", request.mDocumentStore.Body). Set("DocumentPath", request.mDocumentStore.DocumentPath). Set("DocumentType", request.mDocumentStore.DocumentType). Set("Importance", request.mDocumentStore.Importance). Set("SendDate", request.mDocumentStore.SendDate). Set("SendStatus", request.mDocumentStore.SendStatus). Set("ErrorMessage", request.mDocumentStore.ErrorMessage). Set("Edit_Date", request.mDocumentStore.Edit_Date). Set("Edit_User", request.mDocumentStore.Edit_User). Set("RetryDate", request.mDocumentStore.RetryDate). Set("Send_Via", request.mDocumentStore.Send_Via). Set("DocumentReference", request.mDocumentStore.DocumentReference). Set("DocumentSigned", request.mDocumentStore.DocumentSigned). Set("SupplierConfNum", request.mDocumentStore.SupplierConfNum). Set("DocumentSignInUser", request.mDocumentStore.DocumentSignInUser). Set("MailStatus", request.mDocumentStore.MailStatus). Set("SystemCompany_Id", SystemCompanyId)); if (docstore != null) { res.ResponseStatus.Status = "Success"; res.ResponseStatus.ErrorMessage = "Document Store details upadted successfully."; } else { res.ResponseStatus.Status = "Failure"; res.ResponseStatus.ErrorMessage = "Document Store details not upadted."; } } else { res.ResponseStatus.Status = "Failure"; res.ResponseStatus.ErrorMessage = "Document Id not exists in mDocumentStore collection."; } } else { request.mDocumentStore.Edit_Date = null; request.mDocumentStore.Edit_User = ""; request.mDocumentStore.Document_Id = string.IsNullOrEmpty(request.Document_Id) ? Guid.NewGuid().ToString() : request.Document_Id; await _MongoContext.mDocumentStore.InsertOneAsync(request.mDocumentStore); res.ResponseStatus.Status = "Success"; res.ResponseStatus.ErrorMessage = "Document Store details inserted successfully."; } res.DocumentId = request.mDocumentStore.Document_Id; } else { res.ResponseStatus.Status = "Failure"; res.ResponseStatus.ErrorMessage = "Request can not be null/blank."; } } catch (Exception ex) { res.ResponseStatus.Status = "Failure"; res.ResponseStatus.ErrorMessage = !string.IsNullOrEmpty(ex.Message) ? ex.Message : (ex.InnerException != null && !string.IsNullOrEmpty(ex.InnerException.Message)) ? ex.InnerException.Message : ""; } return(res); }