Ejemplo n.º 1
0
        // POST api/account/accountId/updateProducts
        public UpdateProductsResponseModel Post(int accountId, [FromBody] UpdateProductsRequestModel value)
        {
            var context  = new SyncApiContext();
            var response = new UpdateProductsResponseModel();

            // TODO 404 if account doesnt exist
            // TODO auth
            // TODO logging
            // TODO async this biatch
            var productsForAccount = context.Products.Where(p => p.Account.Id == accountId).ToList();

            foreach (var product in value.Products)
            {
                var productToEdit = productsForAccount.SingleOrDefault(p => p.Id == product.Id);
                if (productToEdit != null)
                {
                    productToEdit.Name    = product.Name;
                    productToEdit.Deleted = product.Deleted;
                    response.UpdatedProducts.Add(new UpdateProductResponseModel {
                        ExternalId = product.ExternalId, Id = productToEdit.Id
                    });
                }
            }

            context.SaveChanges();
            return(response);
        }
        //
        // GET: /Dashboard/
        public ActionResult Index(int accountId)
        {
            var context = new SyncApiContext();

            var account = context.Accounts.Find(accountId);

            if (account == null)
            {
                return(new HttpNotFoundResult("No Account with id " + accountId));
            }

            var products = context.Products.Where(p => p.Account.Id == account.Id).ToList();

            var viewModel = new DashboardViewModel()
            {
                AccountId = accountId, Products = products
            };

            return(View(viewModel));
        }
Ejemplo n.º 3
0
        public ProductsViewModel Get(int accountId)
        {
            var result = new ProductsViewModel {
                AccountId = accountId
            };
            var context = new SyncApiContext();

            // TODO handle account does not exist with a 404s
            // TODO logging
            // TODO authentication
            var account  = context.Accounts.Find(accountId);
            var products = context.Products.Where(p => p.Account.Id == account.Id).ToList();

            foreach (var product in products)
            {
                result.Products.Add(new ProductViewModel {
                    Id = product.Id, Name = product.Name, Deleted = product.Deleted
                });
            }

            return(result);
        }
Ejemplo n.º 4
0
        // POST api/account/accountId/newProducts
        public NewProductsResponseModel Post(int accountId, [FromBody] NewProductsRequestModel value)
        {
            // TODO make all this asynchronous and parallelelel
            // TODO, this creates an account if it doesnt exist, kill this later on when we have a way to register accounts
            // TODO logging
            // TODO authentication
            var context = new SyncApiContext();

            AccountModel account = context.Accounts.Find(accountId);

            if (account == null)
            {
                account = new AccountModel {
                    Id = accountId
                };
                context.Accounts.Add(account);
                context.SaveChanges();
            }

            var response = new NewProductsResponseModel();

            foreach (var product in value.Products)
            {
                var newProduct = new ProductModel()
                {
                    Account = account
                };
                context.Products.Add(newProduct);
                context.SaveChanges();
                response.CreatedProducts.Add(new NewProductResponseModel {
                    ExternalId = product.ExternalId, Id = newProduct.Id
                });
            }

            //Parallel.ForEach(value.Products, p => SaveProduct(p, response, context, account));

            return(response);
        }