public async Task <BidAndTenderRespObj> Handle(GetPreviousBidAndTenderQuery request, CancellationToken cancellationToken) { var result = await _repo.GetAllPrevSupplierBidAndTender(request.SupplierEmail); var response = new BidAndTenderRespObj { Status = new APIResponseStatus { Message = new APIResponseMessage() } }; CompanyStructureRespObj _Department = new CompanyStructureRespObj(); if (result.Count() > 0) { _Department = await _serverRequest.GetAllCompanyStructureAsync(); } response.BidAndTenders = result?.Where(a => a.ApprovalStatusId == (int)ApprovalStatus.Approved || a.ApprovalStatusId == (int)ApprovalStatus.Pending) .Select(d => new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ProposalTenderUploadType = d.ProposalTenderUploadType, ProposalTenderUploadPath = d.ProposalTenderUploadPath, ProposalTenderUploadName = d.ProposalTenderUploadName, ProposalTenderUploadFullPath = d.ProposalTenderUploadFullPath, ExpectedDeliveryDate = d.ExpectedDeliveryDate, ProposedAmount = d.ProposedAmount.ToString(), RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, DecisionReultName = Convert.ToString((DecisionResult)d.DecisionResult), Quantity = d.Quantity, Total = d.Total, ApprovalStatusId = d.ApprovalStatusId, SupplierId = d.SupplierId, WorkflowToken = d.WorkflowToken, SupplierAddress = d.SupplierAddress, RequestingDepartmentName = _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name, }).ToList() ?? new List <BidAndTenderObj>(); response.Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = result.Count() > 0 ? null : "Search Complete! No Record found" } }; return(response); }
public async Task <BidAndTenderRespObj> Handle(GetAvailableBidsQuery request, CancellationToken cancellationToken) { var result = await _repo.GetAllBidAndTender(); var statusPendingList = result.Where(s => s.ApprovalStatusId == (int)ApprovalStatus.Pending); CompanyStructureRespObj _Department = new CompanyStructureRespObj(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); return(new BidAndTenderRespObj { BidAndTenders = result.Where(a => a.ApprovalStatusId != (int)ApprovalStatus.Disapproved && (int)ApprovalStatus.Authorised != a.ApprovalStatusId && a.SupplierId != 0).OrderByDescending(q => q.BidAndTenderId).Select(d => new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ProposedAmount = d.ProposedAmount.ToString(), RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, DecisionReultName = Convert.ToString((DecisionResult)d.DecisionResult), Quantity = d.Quantity, Total = d.Total, ApprovalStatusId = d.ApprovalStatusId, SupplierId = d.SupplierId, WorkflowToken = d.WorkflowToken, ProposalTenderUploadType = d.ProposalTenderUploadType, ProposalTenderUploadPath = d.ProposalTenderUploadPath, ProposalTenderUploadName = d.ProposalTenderUploadName, ProposalTenderUploadFullPath = d.ProposalTenderUploadFullPath, ExpectedDeliveryDate = d.ExpectedDeliveryDate, StatusName = Convert.ToString((ApprovalStatus)d.ApprovalStatusId), RequestingDepartmentName = _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name, }).ToList() ?? new List <BidAndTenderObj>(), Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = result.Count() > 0 ? null : "Search Complete! No Record found" } } }); }
public async Task <BidAndTenderRespObj> Handle(GetSupplierAdvertsNotBiddenForQuery request, CancellationToken cancellationToken) { var response = new BidAndTenderRespObj { Status = new APIResponseStatus { Message = new APIResponseMessage() } }; CompanyStructureRespObj _Department = new CompanyStructureRespObj(); var resp = new List <BidAndTenderObj>(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var domainList = _dataContext.cor_bid_and_tender.ToList().GroupBy(w => w.BidAndTenderId).Select(q => q.First()).Where(r => r.ApprovalStatusId == (int)ApprovalStatus.Awaiting).ToArray(); response.BidAndTenders = domainList?.OrderByDescending(a => a.BidAndTenderId).Where(r => r.ApprovalStatusId == (int)ApprovalStatus.Awaiting && r.SupplierId == 0) .Select(d => new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ExpectedDeliveryDate = d.ExpectedDeliveryDate, RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, Quantity = d.Quantity, Total = d.Total, ApprovalStatusId = d.ApprovalStatusId, SupplierId = d.SupplierId, WorkflowToken = d.WorkflowToken, Comment = d.Comment, SupplierAddress = d.SupplierAddress, RequestingDepartmentName = d.RequestingDepartment > 0? _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name : string.Empty, PLPOId = d.PLPOId, PRNId = d.PurchaseReqNoteId, }).ToList() ?? new List <BidAndTenderObj>(); return(response); }
public async Task <CompanyStructureRespObj> GetAllCompanyStructureAsync() { try { var gosGatewayClient = _httpClientFactory.CreateClient("GOSDEFAULTGATEWAY"); var response = new CompanyStructureRespObj { Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage() } }; CompanyStructureRespObj resultObj = new CompanyStructureRespObj(); var result = await gosGatewayClient.GetAsync(ApiRoutes.IdentitySeverRequests.COMPANY); var resultString = await result.Content.ReadAsStringAsync(); resultObj = JsonConvert.DeserializeObject <CompanyStructureRespObj>(resultString); if (!result.IsSuccessStatusCode) { response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = $"{result.ReasonPhrase} {(int)result.StatusCode} {result.Content}"; throw new Exception($"{response}"); } if (!resultObj.Status.IsSuccessful) { response.Status = resultObj.Status; return(response); } response.companyStructures = resultObj.companyStructures; return(response); } catch (Exception ex) { #region Log error var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); throw ex; #endregion } }
public async Task <ProposalPaymentRespObj> Handle(GetRequestedPaymentsAwaitingApprovalQuery request, CancellationToken cancellationToken) { try { var result = await _serverRequest.GetAnApproverItemsFromIdentityServer(); if (!result.IsSuccessStatusCode) { var data1 = await result.Content.ReadAsStringAsync(); var res1 = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data1); return(new ProposalPaymentRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = $"{result.ReasonPhrase} {result.StatusCode}" } } }); } var data = await result.Content.ReadAsStringAsync(); var res = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data); if (res == null) { return(new ProposalPaymentRespObj { Status = res.Status }); } if (res.workflowTasks.Count() < 1) { return(new ProposalPaymentRespObj { Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = "No Pending Approval" } } }); } CompanyStructureRespObj _Department = new CompanyStructureRespObj(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var paymentTerms = await _repo.GetPaymenttermsAsync(); var bids = await _repo.GetAllBidAndTender(); var staffRequestedPaymentsawaiting = await _repo.GetRequestedPaymentsAwaitingApprovalAsync(res.workflowTasks.Select(x => x.TargetId).ToList(), res.workflowTasks.Select(s => s.WorkflowToken).ToList()); //var RequestedPaymentss = await _repo.GetAllPurchaseRequisitionNoteAsync(); var payments = staffRequestedPaymentsawaiting.Select(d => new ProposalPayment { PaymentTermId = d.PaymentTermId, Completion = d.Completion, Amount = d.Amount, NetAmount = d.NetAmount, Payment = d.Payment, PaymentStatus = d.PaymentStatus, PaymentStatusName = Convert.ToString(d.PaymentStatus), Phase = d.Phase, PhaseName = Convert.ToString((PaymentTermsPhase)d.Phase), ProjectStatusDescription = d.ProjectStatusDescription, Status = d.Status, StatusName = Convert.ToString((JobProgressStatus)d.Status), Comment = d.Comment, AmountPaid = 0, LPOId = d.LPOId, AmountPayable = d.NetAmount, PaymentOutstanding = d.NetAmount, }).ToList(); if (payments.Count() > 0) { foreach (var item in payments) { var alreadyPaidPhases = _dataContext.cor_paymentterms.Where(a => a.LPOId == item.LPOId && a.ProposedBy == (int)Proposer.STAFF && a.PaymentStatus == (int)PaymentStatus.Paid).ToList(); if (alreadyPaidPhases.Count() > 0) { item.AmountPaid = alreadyPaidPhases.Sum(f => f.NetAmount); item.PaymentOutstanding = (item.AmountPayable - alreadyPaidPhases.Sum(f => f.NetAmount)); } } } return(new ProposalPaymentRespObj { ProposalPayment = payments, Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = staffRequestedPaymentsawaiting.Count() > 0 ? "" : "Search Complete : No Payment awaitingt approvals" } } }); } catch (SqlException ex) { throw ex; } }
public async Task <BidAndTenderRespObj> Handle(GetBidAndTenderByIdQuery request, CancellationToken cancellationToken) { CompanyStructureRespObj _Department = new CompanyStructureRespObj(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var d = await _repo.GetBidAndTender(request.BidAndTenderID); var prn = await _repo.GetAllPurchaseRequisitionNoteAsync(); var itemList = new List <BidAndTenderObj>(); if (d != null) { var item = new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ProposalTenderUploadType = d.ProposalTenderUploadType, ProposalTenderUploadPath = d.ProposalTenderUploadPath, ProposalTenderUploadName = d.ProposalTenderUploadName, ProposalTenderUploadFullPath = d.ProposalTenderUploadFullPath, ExpectedDeliveryDate = d.ExpectedDeliveryDate, ProposedAmount = d.ProposedAmount.ToString(), RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, Quantity = d.Quantity, Total = d.Total, PLPOId = d.PLPOId, Comment = d.Comment, SupplierId = d.SupplierId, WorkflowToken = d.WorkflowToken, RequisitionNotes = prn.Where(a => a.PurchaseReqNoteId == d.PurchaseReqNoteId).Select(v => new RequisitionNoteObj { ApprovalStatusId = v.ApprovalStatusId, Comment = v.Comment, DeliveryLocation = v.DeliveryLocation, DepartmentId = v.DepartmentId, Description = v.Description, DocumentNumber = v.DocumentNumber, ExpectedDeliveryDate = v.ExpectedDeliveryDate, IsFundAvailable = v.IsFundAvailable, PurchaseReqNoteId = v.PurchaseReqNoteId, RequestBy = v.RequestBy, StatusName = Convert.ToString((ApprovalStatus)v.ApprovalStatusId), Total = v.Total, RequestDate = v.CreatedOn, WorkflowToken = v.WorkflowToken, PRNNumber = v.PRNNumber, DetailsCount = v.purch_prndetails.Count(), }).ToList(), RequestingDepartmentName = _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name, PaymentTerms = d.Paymentterms.Select(b => new PaymentTermsObj { BidAndTenderId = b.BidAndTenderId, Comment = b.Comment, Completion = b.Completion, Amount = b.Amount, NetAmount = b.NetAmount, Payment = b.Payment, PaymentStatus = b.PaymentStatus, Phase = b.Phase, PaymentTermId = b.PaymentTermId, Status = b.Status, ProposedBy = b.ProposedBy, ProjectStatusDescription = b.ProjectStatusDescription, }).ToList(), }; itemList.Add(item); } return(new BidAndTenderRespObj { BidAndTenders = itemList, Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = itemList.Count() > 0 ? null : "Search Complete! No Record found" } } }); }
public async Task <BidAndTenderRespObj> Handle(GetBidAndTenderAwaitingApprovalQuery request, CancellationToken cancellationToken) { try { var response = new BidAndTenderRespObj { Status = new APIResponseStatus { Message = new APIResponseMessage() } }; CompanyStructureRespObj _Department = new CompanyStructureRespObj(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var result = await _serverRequest.GetAnApproverItemsFromIdentityServer(); if (!result.IsSuccessStatusCode) { var data1 = await result.Content.ReadAsStringAsync(); var res1 = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data1); response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = $"{result.ReasonPhrase} {result.StatusCode}"; return(response); } var data = await result.Content.ReadAsStringAsync(); var res = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data); if (res == null) { response.Status = res.Status; return(response); } if (res.workflowTasks.Count() < 1) { response.Status.IsSuccessful = true; response.Status.Message.FriendlyMessage = "No Pending Approval"; return(response); } var staffBidawaiting = await _repo.GetBidAndTenderAwaitingApprovalAsync(res.workflowTasks.Select(x => x.TargetId).ToList(), res.workflowTasks.Select(s => s.WorkflowToken).ToList()); var paymentTerms = await _repo.GetPaymenttermsAsync(); var requisitions = await _repo.GetAllPurchaseRequisitionNoteAsync(); response.BidAndTenders = staffBidawaiting?.Where(w => w.ApprovalStatusId != (int)ApprovalStatus.Disapproved).Select(d => new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ProposalTenderUploadType = d.ProposalTenderUploadType, ProposalTenderUploadPath = d.ProposalTenderUploadPath, ProposalTenderUploadName = d.ProposalTenderUploadName, ProposalTenderUploadFullPath = d.ProposalTenderUploadFullPath, ProposedAmount = d.ProposedAmount.ToString(), RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, DecisionReultName = Convert.ToString((DecisionResult)d.DecisionResult), Quantity = d.Quantity, SupplierId = d.SupplierId, PLPOId = d.PLPOId, Total = d.Total, ApprovalStatusId = d.ApprovalStatusId, WorkflowToken = d.WorkflowToken, ExpectedDeliveryDate = d.ExpectedDeliveryDate, SupplierAddress = d.SupplierAddress, PRNId = d.PurchaseReqNoteId, RequestingDepartmentName = _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name, RequisitionNotes = _dataContext.purch_requisitionnote.Where(q => q.PurchaseReqNoteId == d.PurchaseReqNoteId).Select(w => new RequisitionNoteObj { PurchaseReqNoteId = w.PurchaseReqNoteId, ApprovalStatusId = w.ApprovalStatusId, Comment = w.Comment, DeliveryLocation = w.DeliveryLocation, DepartmentId = w.DepartmentId, Description = w.Description, DocumentNumber = w.DocumentNumber, ExpectedDeliveryDate = w.ExpectedDeliveryDate, IsFundAvailable = w.IsFundAvailable, PRNNumber = w.PRNNumber, Total = w.Total, RequestDate = w.CreatedOn, RequestBy = w.RequestBy, StatusName = Convert.ToString((ApprovalStatus)d.ApprovalStatusId), }).ToList(), PaymentTerms = paymentTerms.Where(s => s.BidAndTenderId == d.BidAndTenderId).Select(a => new PaymentTermsObj { BidAndTenderId = a.BidAndTenderId, Comment = a.Comment, Completion = a.Completion, Amount = a.Amount, NetAmount = a.NetAmount, Payment = a.Payment, PaymentStatus = a.PaymentStatus, PaymentStatusName = Convert.ToString((PaymentStatus)a.PaymentStatus), PaymentTermId = a.PaymentTermId, Phase = a.Phase, ProjectStatusDescription = a.ProjectStatusDescription, Status = a.Status, ProposedBy = a.ProposedBy, StatusName = Convert.ToString((JobProgressStatus)a.Status), }).ToList(), }).ToList() ?? new List <BidAndTenderObj>(); response.Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = staffBidawaiting.Count() > 0 ? null : "Search Complete! No Record found" } }; return(response); } catch (SqlException ex) { throw ex; } }
public async Task <LPORespObj> Handle(GetLPOAwaitingApprovalQuery request, CancellationToken cancellationToken) { try { var result = await _serverRequest.GetAnApproverItemsFromIdentityServer(); if (!result.IsSuccessStatusCode) { var data1 = await result.Content.ReadAsStringAsync(); var res1 = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data1); return(new LPORespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = $"{result.ReasonPhrase} {result.StatusCode}" } } }); } var data = await result.Content.ReadAsStringAsync(); var res = JsonConvert.DeserializeObject <WorkflowTaskRespObj>(data); if (res == null) { return(new LPORespObj { Status = res.Status }); } if (res.workflowTasks.Count() < 1) { return(new LPORespObj { Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = "No Pending Approval" } } }); } CompanyStructureRespObj _Department = new CompanyStructureRespObj(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var paymentTerms = await _repo.GetPaymenttermsAsync(); var bids = await _repo.GetAllBidAndTender(); var staffLPOawaiting = await _repo.GetLPOAwaitingApprovalAsync(res.workflowTasks.Select(x => x.TargetId).ToList(), res.workflowTasks.Select(s => s.WorkflowToken).ToList()); var lpos = await _repo.GetAllPurchaseRequisitionNoteAsync(); return(new LPORespObj { LPOs = staffLPOawaiting?.Select(d => new LPOObj { AmountPayable = d.AmountPayable, ApprovalStatusId = d.ApprovalStatusId, BidAndTenderId = d.BidAndTenderId, DeliveryDate = d.DeliveryDate, Description = d.Description, GrossAmount = d.GrossAmount, JobStatus = d.JobStatus, JobStatusName = Convert.ToString((JobProgressStatus)d.JobStatus), LPONumber = d.LPONumber, Name = d.Name, PLPOId = d.PLPOId, RequestDate = d.RequestDate, SupplierAddress = d.SupplierAddress, SupplierId = d.SupplierIds, SupplierNumber = d.SupplierNumber, Tax = d.Tax, Total = d.Total, WorkflowToken = d.WorkflowToken, WinnerSupplierId = d.WinnerSupplierId, BidAndTender = bids.Where(w => w.BidAndTenderId == d.BidAndTenderId).Select(s => new BidAndTenderObj { BidAndTenderId = s.BidAndTenderId, AmountApproved = s.AmountApproved, ApprovalStatusId = s.ApprovalStatusId, DateSubmitted = s.DateSubmitted, DecisionResult = s.DecisionResult, DecisionReultName = Convert.ToString((DecisionResult)s.DecisionResult), DescriptionOfRequest = s.DescriptionOfRequest, ExpectedDeliveryDate = s.ExpectedDeliveryDate, Location = s.Location, LPOnumber = s.LPOnumber, PLPOId = s.PLPOId, PRNId = s.PLPOId, ProposedAmount = s.ProposedAmount.ToString(), Quantity = s.Quantity, RequestDate = s.RequestDate, RequestingDepartmentName = _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == s.RequestingDepartment)?.Name, SupplierAddress = s.SupplierAddress, Suppliernumber = s.Suppliernumber, SupplierName = s.SupplierName, Total = s.Total, }).ToList(), RequisitionNotes = lpos.Where(w => w.PurchaseReqNoteId == d.PurchaseReqNoteId).Select(q => new RequisitionNoteObj { PurchaseReqNoteId = q.PurchaseReqNoteId, ApprovalStatusId = q.ApprovalStatusId, Comment = q.Comment, DeliveryLocation = q.DeliveryLocation, DepartmentId = q.DepartmentId, Description = q.Description, DocumentNumber = q.DocumentNumber, ExpectedDeliveryDate = q.ExpectedDeliveryDate, IsFundAvailable = q.IsFundAvailable, PRNNumber = q.PRNNumber, RequestBy = q.RequestBy, Total = q.Total, RequestDate = q.CreatedOn, }).ToList(), PaymentTerms = paymentTerms.Where(e => e.BidAndTenderId == d.BidAndTenderId).Select(p => new PaymentTermsObj { BidAndTenderId = p.BidAndTenderId, Comment = p.Comment, Completion = p.Completion, Amount = p.Amount, NetAmount = p.NetAmount, Payment = p.Payment, PaymentStatus = p.PaymentStatus, PaymentTermId = p.PaymentTermId, Phase = p.Phase, ProjectStatusDescription = p.ProjectStatusDescription, Status = p.Status, ProposedBy = p.ProposedBy, StatusName = Convert.ToString((JobProgressStatus)p.Status), PaymentStatusName = Convert.ToString((PaymentStatus)p.PaymentStatus), }).ToList(), }).ToList() ?? new List <LPOObj>(), Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = staffLPOawaiting.Count() > 0 ? null : "Search Complete! No Record found" } } }); } catch (SqlException ex) { throw ex; } }
public async Task <BidAndTenderRespObj> Handle(GetBidAndTenderQuery request, CancellationToken cancellationToken) { var response = new BidAndTenderRespObj { Status = new APIResponseStatus { Message = new APIResponseMessage() } }; var userid = _accessor.HttpContext.User?.FindFirst(a => a.Type == "userId")?.Value; var user = await _userManager.FindByIdAsync(userid); var otherBids = await _dataContext.cor_bid_and_tender.Where(a => a.SupplierId == 0 && a.ApprovalStatusId == (int)ApprovalStatus.Awaiting).ToListAsync(); var supDetail = await _dataContext.cor_supplier.FirstOrDefaultAsync(a => a.Email.Trim().ToLower() == user.Email.Trim().ToLower()); var result = await _repo.GetAllSupplierBidAndTender(user.Email); CompanyStructureRespObj _Department = new CompanyStructureRespObj(); var resp = new List <BidAndTenderObj>(); _Department = await _serverRequest.GetAllCompanyStructureAsync(); var domainList = new List <cor_bid_and_tender>(); domainList.AddRange(result); if (otherBids.Count() > 0) { var nonSupplierBids = otherBids.Where(q => !q.SelectedSuppliers.Split(',').Select(int.Parse).ToList().Contains(supDetail.SupplierId)).ToList(); if (nonSupplierBids.Count() > 0) { foreach (var er in nonSupplierBids) { er.SupplierName = supDetail.Name; er.Suppliernumber = supDetail.SupplierNumber; er.SupplierId = supDetail.SupplierId; } } domainList.AddRange(nonSupplierBids); } response.BidAndTenders = domainList?.OrderByDescending(a => a.BidAndTenderId).Where(r => r.ApprovalStatusId == (int)ApprovalStatus.Awaiting) .Select(d => new BidAndTenderObj { BidAndTenderId = d.BidAndTenderId, AmountApproved = d.AmountApproved, DateSubmitted = d.DateSubmitted, DecisionResult = d.DecisionResult, DescriptionOfRequest = d?.DescriptionOfRequest, Location = d?.Location, LPOnumber = d?.LPOnumber, ExpectedDeliveryDate = d.ExpectedDeliveryDate, RequestDate = d.RequestDate, RequestingDepartment = d.RequestingDepartment, SupplierName = d?.SupplierName, Suppliernumber = d?.Suppliernumber, Quantity = d.Quantity, Total = d.Total, ApprovalStatusId = d.ApprovalStatusId, SupplierId = d.SupplierId, WorkflowToken = d.WorkflowToken, Comment = d.Comment, SupplierAddress = d.SupplierAddress, RequestingDepartmentName = d.RequestingDepartment > 0? _Department.companyStructures.FirstOrDefault(e => e.CompanyStructureId == d.RequestingDepartment)?.Name : string.Empty, PLPOId = d.PLPOId, PRNId = d.PurchaseReqNoteId, }).ToList() ?? new List <BidAndTenderObj>(); if (response.BidAndTenders.Count() > 0) { var biddenITem = _dataContext.cor_bid_and_tender.Where(q => q.SupplierId == supDetail.SupplierId && response.BidAndTenders.Select(s => s.PLPOId).Contains(q.PLPOId) && !string.IsNullOrEmpty(q.SelectedSuppliers)).ToList(); if (biddenITem.Count() > 0) { var lrespn = response.BidAndTenders.Except(response.BidAndTenders.Where(a => biddenITem.Select(w => w.PLPOId).Contains(a.PLPOId)).ToList()); response.BidAndTenders = lrespn.ToList(); } } return(response); }