public async Task <SupplierSetRes> SetSupplierProduct(SupplierSetReq request) { SupplierSetRes response = new SupplierSetRes(); try { var company = _MongoContext.mCompanies.AsQueryable().Where(x => x.Company_Id == request.Company_Id).FirstOrDefault(); if (company != null && request.Product != null) { var product = company.Products.Where(x => x.ProductSupplier_Id == request.ProductSupplier_Id).FirstOrDefault(); if (product != null) { if (request.Product.SalesAgent != null && request.Product.SalesAgent.Count > 0 && request.IsAddSalesAgent) { ProductSupplierSalesAgent newAgent = new ProductSupplierSalesAgent(); newAgent.ProductSupplierSalesAgent_Id = Guid.NewGuid().ToString(); newAgent.Company_Id = request.Product.SalesAgent[0].Company_Id; newAgent.Company_Code = request.Product.SalesAgent[0].Company_Code; newAgent.Company_Name = request.Product.SalesAgent[0].Company_Name; product.EditUser = request.EditUser; product.EditDate = DateTime.Now; product.SalesAgent.Add(newAgent); response.SalesAgentId = newAgent.ProductSupplierSalesAgent_Id; } else if (request.IsRemoveSalesAgent && !string.IsNullOrEmpty(request.ProductSupplierSalesAgent_Id)) { product.SalesAgent.RemoveAll(x => x.ProductSupplierSalesAgent_Id == request.ProductSupplierSalesAgent_Id); product.EditUser = request.EditUser; product.EditDate = DateTime.Now; response.SalesAgentId = request.ProductSupplierSalesAgent_Id; } else if (request.IsProduct) { string salesEmail = string.Empty, salesName = string.Empty, fitEmail = string.Empty, fitName = string.Empty, groupEmail = string.Empty, groupName = string.Empty, financeEmail = string.Empty, financeName = string.Empty, emergencyEmail = string.Empty, emergencyName = string.Empty, complaintEmail = string.Empty, complaintName = string.Empty; var currencyname = _MongoContext.mCurrency.AsQueryable().Where(x => x.VoyagerCurrency_Id == request.Product.CurrencyId).Select(x => x.Name).FirstOrDefault(); var contactdetails = company.ContactDetails.ToList(); if (contactdetails != null && contactdetails.Count > 0) { salesName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Sales_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); salesEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Sales_Id).Select(x => x.MAIL).FirstOrDefault(); fitName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_FIT_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); fitEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_FIT_Id).Select(x => x.MAIL).FirstOrDefault(); groupName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Group_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); groupEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Group_Id).Select(x => x.MAIL).FirstOrDefault(); financeName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Finance_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); financeEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Finance_Id).Select(x => x.MAIL).FirstOrDefault(); emergencyName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Emergency_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); emergencyEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Emergency_Id).Select(x => x.MAIL).FirstOrDefault(); complaintName = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Complaints_Id).Select(x => x.FIRSTNAME + " " + x.LastNAME).FirstOrDefault(); complaintEmail = contactdetails.Where(x => x.Contact_Id == request.Product.Contact_Complaints_Id).Select(x => x.MAIL).FirstOrDefault(); } product.SupplierStatus = request.Product.SupplierStatus; product.CurrencyId = request.Product.CurrencyId; product.CurrencyName = currencyname; product.ActiveFrom = request.Product.ActiveFrom; product.ActiveTo = request.Product.ActiveTo; product.IsPreferred = request.Product.IsPreferred; product.IsDefault = request.Product.IsDefault; product.Contact_Sales_Id = request.Product.Contact_Sales_Id; product.Contact_Sales_Name = salesName; product.Contact_Sales_Email = salesEmail; product.Contact_FIT_Id = request.Product.Contact_FIT_Id; product.Contact_FIT_Name = fitName; product.Contact_FIT_Email = fitEmail; product.Contact_Group_Id = request.Product.Contact_Group_Id; product.Contact_Group_Name = groupName; product.Contact_Group_Email = groupEmail; product.Contact_Finance_Id = request.Product.Contact_Finance_Id; product.Contact_Finance_Name = financeName; product.Contact_Finance_Email = financeEmail; product.Contact_Emergency_Id = request.Product.Contact_Emergency_Id; product.Contact_Emergency_Name = emergencyName; product.Contact_Emergency_Email = emergencyEmail; product.Contact_Complaints_Id = request.Product.Contact_Complaints_Id; product.Contact_Complaints_Name = complaintName; product.Contact_Complaints_Email = complaintEmail; product.EditUser = request.EditUser; product.EditDate = DateTime.Now; if (request.Product.IsDefault == false) { product.OperatingMarket.RemoveAll(x => x.ProductSupplierOperatingMkt_Id != null); foreach (var a in request.Product.OperatingMarket) { ProductSupplierOperatingMarket op = new ProductSupplierOperatingMarket(); op.ProductSupplierOperatingMkt_Id = Guid.NewGuid().ToString(); op.BusinessRegion_Id = a.BusinessRegion_Id; op.BusinessRegion = a.BusinessRegion; product.OperatingMarket.Add(op); } product.SalesMarket.RemoveAll(x => x.ProductSupplierSalesMkt_Id != null); foreach (var a in request.Product.SalesMarket) { ProductSupplierSalesMarket sm = new ProductSupplierSalesMarket(); sm.ProductSupplierSalesMkt_Id = Guid.NewGuid().ToString(); sm.BusinessRegion_Id = a.BusinessRegion_Id; sm.BusinessRegion = a.BusinessRegion; product.SalesMarket.Add(sm); } } else { product.OperatingMarket = new List <ProductSupplierOperatingMarket>(); product.SalesMarket = new List <ProductSupplierSalesMarket>(); product.SalesAgent = new List <ProductSupplierSalesAgent>(); } } } await _MongoContext.mCompanies.UpdateOneAsync(Builders <mCompanies> .Filter.Eq("Company_Id", company.Company_Id), Builders <mCompanies> .Update.Set("Products", company.Products) .Set("EditUser", request.EditUser).Set("EditDate", DateTime.Now)); } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "No company found"; } } catch (Exception ex) { Console.WriteLine(ex.Message); response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = ex.Message; } return(response); }
public IActionResult SaveProductSalesAgent(Branches model) { var status = ""; request = new AgentGetReq() { CompanyId = model.ParentCompanyId }; AgentGetRes response = agentProviders.GetAgentDetailedInfo(request, token).Result; var msg = ""; var name = ""; if (!string.IsNullOrEmpty(model.BranchCompanyName)) { name = model.BranchCompanyName; if (response.AgentDetails.Products != null && (model.BranchCompanyId != response.AgentDetails.Company_Id)) { var product = response.AgentDetails.Products.Where(x => x.ProductSupplier_Id == model.ProductSupplierId).FirstOrDefault(); var IsDuplicate = product.SalesAgent.Where(x => x.Company_Name == name).Select(x => x.Company_Name).FirstOrDefault(); if (!string.IsNullOrEmpty(IsDuplicate)) { status = "error"; msg = "Duplicate record. Cannot insert as " + IsDuplicate + " is already exists. Please select another agent."; } else { SupplierSetReq req = new SupplierSetReq(); req.Company_Id = model.ParentCompanyId; req.ProductSupplier_Id = model.ProductSupplierId; req.EditUser = ckUserEmailId; req.IsAddSalesAgent = true; ProductSupplierSalesAgent newAgent = new ProductSupplierSalesAgent() { Company_Id = model.BranchCompanyId, Company_Code = model.BranchCompanyCode, Company_Name = model.BranchCompanyName }; req.Product.SalesAgent.Add(newAgent); SupplierSetRes res = supplierProviders.SetSupplierProduct(req, token).Result; var salesAgentId = res.SalesAgentId; //Call Bridge service to save Contact data in SQL databse ResponseStatus result = new ResponseStatus(); if (res.ResponseStatus != null) { if (res.ResponseStatus.Status.ToLower() == "success") { SetProductSalesAgent_RQ request = new SetProductSalesAgent_RQ(); request.ProductSupplier_Id = model.ProductSupplierId; request.ProductSupplierSalesAgent_Id = salesAgentId; request.User = ckUserEmailId; result = supplierProviders.SetCompany_ProductSalesAgent(request, token).Result; status = result.Status; msg = res.ResponseStatus.ErrorMessage + " " + result.StatusMessage; } else { status = "failure"; msg = res.ResponseStatus.ErrorMessage; } } } } else { status = "error"; msg = "Cannot insert existing company name"; } } else { status = "error"; msg = "Please Select Agent Name"; } return(Json(new { status = status, responseText = msg })); //return View(); }