コード例 #1
0
        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");
        }
コード例 #2
0
        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);
        }