public void Save(CompetitorProductsViewModel cvm)
 {
     CompetitorProducts cProd = new CompetitorProducts(cvm.Id) 
     {
     Brand=_productBrandRepository.GetById(cvm.Brand),
     Flavour=_flavourRepository.GetById(cvm.Flavour),
     PackagingType=_packagingTypeRepository.GetById(cvm.PackagingType),
     Packaging=_packagingRepository.GetById(cvm.Packaging),
      Competitor=_competitorRepository.GetById(cvm.Competitor),
       ProductDescription=cvm.ProductDescription,
       ProductName=cvm.ProductName,
        ProductType=_productTypeRepository.GetById(cvm.Type)
     };
     _competitorProductsRepository.Save(cProd);
 }
 public ActionResult CreateProduct(CompetitorProductsViewModel cpvm)
 {
     ViewBag.Brands = _competitorProductsViewModel.GetBrand();
     ViewBag.Competitors = _competitorProductsViewModel.GetCompetitor();
     ViewBag.Flavours = _competitorProductsViewModel.GetFlavour();
     ViewBag.PackTypes = _competitorProductsViewModel.GetPackType();
     ViewBag.Packs = _competitorProductsViewModel.GetPackaging();
     ViewBag.Types = _competitorProductsViewModel.GetProdType();
     try
     {
         cpvm.Id = Guid.NewGuid();
         _competitorProductsViewModel.Save(cpvm);
         _auditLogViewModelBuilder.AddAuditLog(this.User.Identity.Name, "Create", "Competitor Products", DateTime.Now);
         TempData["msg"] = "Competitor Product Successfully Created";
         return RedirectToAction("ListCompetitorProducts");
     }
     catch (DomainValidationException dve)
     {
         ValidationSummary.DomainValidationErrors(dve, ModelState);
                   
         _log.Debug("Failed to create competitor products" + dve.Message);
         _log.Error("Failed to creat competitor products" + dve.ToString());
         return View();
     }
     catch (Exception ex)
     {
        // ViewBag.msg = ex.Message;
                     
         _log.Debug("Failed to create competitor products" + ex.Message);
         _log.Error("Failed to create competitor products" + ex.ToString());
         return View();
     }
 }
 CompetitorProductsViewModel Map(CompetitorProducts cProds)
 {
     CompetitorProductsViewModel competitorProduct = new CompetitorProductsViewModel();
     {
         competitorProduct.Id = cProds.Id;
         if(cProds.Brand !=null)
         competitorProduct.Brand = cProds.Brand.Id;
         
         if(cProds.Brand !=null)
         competitorProduct.BrandName = cProds.Brand.Name;
         if (cProds.Flavour  != null)
        competitorProduct. Flavour = cProds.Flavour.Id;
         if (cProds.Flavour != null)
        competitorProduct. FlavourName = cProds.Flavour.Name;
         if (cProds.Packaging  != null)
       competitorProduct.  Packaging = cProds.Packaging.Id;
         if (cProds.Packaging != null)
        competitorProduct. PackagingName = cProds.Packaging.Name;
         if (cProds.PackagingType  != null)
       competitorProduct.  PackagingType = cProds.PackagingType.Id;
         if (cProds.PackagingType != null)
        competitorProduct. PackagingTypeName = cProds.PackagingType.Name;
         if (cProds.Competitor  != null)
       competitorProduct.  Competitor = cProds.Competitor.Id;
         if (cProds.Competitor != null)
       competitorProduct.  CompetitorName = cProds.Competitor.Name;
         if (cProds.ProductDescription  != null)
        competitorProduct. ProductDescription = cProds.ProductDescription;
         if (cProds.ProductName  != null)
        competitorProduct. ProductName = cProds.ProductName;
         if (cProds.ProductType  != null)
        competitorProduct. Type = cProds.ProductType.Id;
         if (cProds.ProductType != null)
        competitorProduct. TypeName = cProds.ProductType.Name;
         competitorProduct.isActive = cProds._Status == EntityStatus.Active ? true : false;
     
     }
     return competitorProduct;
     //return new CompetitorProductsViewModel()
     //{
     //    Brand = cProds.Brand.Id,
     //    BrandName = cProds.Brand.Name,
     //    Flavour = cProds.Flavour.Id,
     //    FlavourName = cProds.Flavour.Name,
     //    Packaging = cProds.Packaging.Id,
     //    PackagingName = cProds.Packaging.Name,
     //    PackagingType = cProds.PackagingType.Id,
     //    PackagingTypeName = cProds.PackagingType.Name,
     //    Competitor = cProds.CompetitorName.Id,
     //    CompetitorName = cProds.CompetitorName.Name,
     //    ProductDescription = cProds.ProductDescription,
     //    ProductName = cProds.ProductName,
     //    Type = cProds.ProdType.Id,
     //    TypeName = cProds.ProdType.Name,
     //    isActive=cProds._Status,
     //    Id=cProds.Id
     //};
 }