public DestinationViewModel Post([FromBody] DestinationViewModel viewModel) { Business.Modules.Destination.Model.Destination blModel = viewModel.ToBusinessModel <DestinationViewModel, Business.Modules.Destination.Model.Destination>(); if (string.IsNullOrEmpty(blModel.Id)) { blModel.CreatedDateTime = DateTime.UtcNow; blModel.CreatedBy = HttpContext.User.Identity.Name; } else { blModel.ModifiedDateTime = DateTime.UtcNow; blModel.ModifiedBy = HttpContext.User.Identity.Name; } blModel = _destinationSvc.Save(blModel); return(blModel.ToViewModel <Business.Modules.Destination.Model.Destination, DestinationViewModel>()); }
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); }