public string ImportCategory([FromBody] CategoryImportViewModel viewModel) { foreach (var category in viewModel.Categories) { category.Id = Guid.NewGuid().ToString(); } var destinations = _destinationSvc.GetByMappingId(viewModel.MappingId); foreach (var destination in destinations) { bool hasChanges = false; foreach (var category in viewModel.Categories) { if (!destination.Categories.Any(e => e.Name == category.Name)) { hasChanges = true; var newCategory = new Business.Modules.Destination.Model.Category { Name = category.Name, Brands = category.Brands, TitleIds = category.TitleIds }; destination.Categories.Add(newCategory); } } if (hasChanges) { _destinationSvc.Save(destination); } } return("Success"); }
public CategoryViewModel Post([FromBody] CategoryViewModel viewModel) { List <DestinationViewModel> destinations = new List <DestinationViewModel>(); foreach (var destination in viewModel.Destinations) { Business.Modules.Destination.Model.Destination destinationDetail = null; if (!string.IsNullOrEmpty(destination.Name)) { destinationDetail = _destinationSvc.GetByName(destination.Name); } if (destinationDetail != null) { if (!string.IsNullOrEmpty(destination.Categories.First().Name)) { if (!string.IsNullOrEmpty(destination.Categories.First().Id)) { var category = destinationDetail.Categories.FirstOrDefault(e => e.Id == destination.Categories.First().Id); category.Name = destination.Categories.First().Name; category.Brands = destination.Categories.First().Brands; category.TitleIds = destination.Categories.First().TitleIds; } else { var newCategory = new Business.Modules.Destination.Model.Category { Name = destination.Categories.First().Name, Brands = destination.Categories.First().Brands, TitleIds = destination.Categories.First().TitleIds }; destinationDetail.Categories.Add(newCategory); } } else { destinationDetail.Categories.RemoveAll(e => e.Id == destination.Categories.First().Id); } var blModel = _destinationSvc.Save(destinationDetail); destinations.Add(blModel.ToViewModel <Business.Modules.Destination.Model.Destination, DestinationViewModel>()); } } if (string.IsNullOrEmpty(viewModel.Id)) { viewModel.Id = Guid.NewGuid().ToString(); } viewModel.Destinations = destinations.Where(d => d.Categories.Count() > 0).ToList(); foreach (var destination in viewModel.Destinations) { destination.Categories = new List <Category> { destination.Categories.FirstOrDefault(e => e.Name == viewModel.Name) }; } viewModel.Destinations = viewModel.Destinations.Where(d => d.Categories.FirstOrDefault() != null).ToList(); return(viewModel); }