public void SaveOrder(OrderViewModel ovm) { ValidationResultInfo vri = ovm.BasicValidation(); if (ovm.distributorCode != null || ovm.salesManCode != null || ovm.outletCode != null) { CostCentre distributor = _costCentreRepository.GetAll().FirstOrDefault(n => n.CostCentreCode == ovm.distributorCode); if (distributor == null) throw new DomainValidationException(vri, "Distributor Not Found\nPlease Check Distributor Code"); CostCentre outlet = _costCentreRepository.GetAll().FirstOrDefault(n => n.CostCentreCode == ovm.outletCode); if (outlet == null) throw new DomainValidationException(vri, "Outlet Not Found\nPlease Check Outlet Code"); CostCentre salesman = _costCentreRepository.GetAll().FirstOrDefault(n => n.CostCentreCode == ovm.salesManCode) as DistributorSalesman; if (salesman == null) throw new DomainValidationException(vri, "Salesman not found\nPlease Check DistributorSalesman Code"); User docIssuerUser = _userRepository.GetAll().FirstOrDefault(n => n.CostCentre == salesman.Id); Product product = _productRepository.GetAll().FirstOrDefault(n => n.ProductCode == ovm.productCode); if (product == null) throw new DomainValidationException(vri, "Product not found"); Order orderCC = _documentFactory.CreateDocument(Guid.NewGuid(), DocumentType.Order, salesman, distributor, docIssuerUser, Guid.NewGuid().ToString()) as Order; } }