public async Task <IHttpActionResult> PostFoodTruckAsync(FoodTruck foodTruck)
        {
            var searchResult = db.FoodTrucks.SingleOrDefault(i => string.Equals(foodTruck.Name.ToLower(), i.Name.ToLower()));

            if (!ModelState.IsValid || searchResult != null)
            {
                return(BadRequest(ModelState));
            }


            foodTruck.Id = Guid.NewGuid().ToString();
            db.FoodTrucks.Add(foodTruck);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (FoodTruckExists(foodTruck.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            return(Ok(""));
            // return CreatedAtRoute("DefaultApi", new { id = foodTruck.Id }, foodTruck);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, FoodTruck foodTruck)
        {
            if (id != foodTruck.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(foodTruck);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FoodTruckExists(foodTruck.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(foodTruck));
        }
        public IHttpActionResult PutFoodTruck(string id, FoodTruck foodTruck)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != foodTruck.Id)
            {
                return(BadRequest());
            }

            db.Entry(foodTruck).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FoodTruckExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        /// <summary>
        /// We would like to manage our growing network of Food Trucks.
        /// As the trucks park throughout the city, we need a way for them
        /// to coordinate and communicate with each other so that they
        /// don't occupy the same parking spots throughout the city.
        /// We use a Mediator to eliminate mutual dependencies among our network of trucks.
        /// </summary>
        private static async Task Main()
        {
            var logger        = new ConsoleLogger();
            var bikeDatabase  = new Database(Configuration.ConnectionString, logger);
            var truckDatabase = new Database(Configuration.ConnectionString, logger);

            var deliveryNetwork = new FoodCartMediator(logger);

            var tacoTruck    = new FoodTruck("Taco Truck", 4, 2, logger, truckDatabase);
            var falafelCart  = new BicycleCart("Falafel Bicycle", 4, 8, logger, bikeDatabase);
            var sushiCart    = new BicycleCart("Sushi Bike", 2, 8, logger, bikeDatabase);
            var sandwichShop = new PopUpShop("Sandwich Pop-Up", 1, 8, logger);

            await deliveryNetwork.Register(tacoTruck);

            await deliveryNetwork.Register(falafelCart);

            await deliveryNetwork.Register(sushiCart);

            await deliveryNetwork.Register(sandwichShop);

            await tacoTruck.Send(sushiCart, new NetworkMessage("Moving to the East Side."));

            await sushiCart.Send(tacoTruck, new NetworkMessage("thanks trucks"));

            await sandwichShop.Send(falafelCart, new NetworkMessage("All done here by the lake!"));

            await falafelCart.Send(falafelCart, new NetworkMessage("thanks bikes!"));

            await sandwichShop.Send(falafelCart, new NetworkMessage("where are you, Sandwich Shop?"));

            await sandwichShop.Send(tacoTruck, new NetworkMessage("hey Taco Truck where are you?"));
        }
Ejemplo n.º 5
0
        public async Task ShouldReturnSingleFoodTruckWhenIdExists()
        {
            // Arrange
            var testServer = TestUtil.CreateTestServer("GetFoodTruckById");

            FoodTruck foodTruck = new FoodTruck(1, "Food Truck One", "Description of food truck one", "http://foodtruckone.com");

            var context = testServer.GetDbContext <FoodTruckContext>();

            context.FoodTrucks.Add(foodTruck);
            context.SaveChanges();

            var testClient = testServer.CreateClient();

            // Act
            var response = await testClient.GetAsync("/api/FoodTrucks/1");

            // Assert
            response.StatusCode.Should().BeEquivalentTo(HttpStatusCode.OK);

            var model = await response.Content.ReadAsAsync <FoodTruckModel>();

            model.FoodTruckId.Should().Be(1);
            model.Name.Should().Be("Food Truck One");
        }
Ejemplo n.º 6
0
        private void CreateUser(Object sender, EventArgs arngs)
        {
            if (this.IsValidUser())
            {
                var foodTruck = new FoodTruck()
                {
                    TradingName         = TradingName.Text,
                    Cnpj                = Cnpj.Text,
                    Email               = Email.Text,
                    Password            = Password.Text,
                    Descrption          = "",
                    FoodTruckSpeciality = "",
                    IsOpen              = false,
                    Latitude            = 0,
                    Longitude           = 0
                };

                var success = this.foodTruckRegisterPageVM.RegisterFoodTruck(foodTruck);

                if (success == true)
                {
                    DisplayAlert("Mensagem", "Bem vindo ao Truck My Food!", "OK");

                    App.Current.MainPage = new NavigationPage(new FoodTruckOwnerPage(foodTruck));
                }

                DisplayAlert("Alerta", "Food Truck já cadastrado, tente fazer o login.", "OK");
            }
        }
Ejemplo n.º 7
0
        public void Delete(int id, string email)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                FoodTruck item = db.FoodTruck.Find(id);

                FuncionarioBusiness funcionarioBusiness = new FuncionarioBusiness(db);

                var funcionario = funcionarioBusiness.GetFuncionarioByEmail(email);
                if (funcionario == null)
                {
                    throw new ExceptionBusiness("Ocorreu um erro ao salvar o FoodTruck favor tente mais tarde, caso o erro continue entre em contato a área responsável pelo sistema.");
                }

                if (funcionario.FoodTruckFuncionario.Count <= 1)
                {
                    throw new ExceptionBusiness("Você deve possuir ao menos um FoodTruck cadastrato.");
                }

                foreach (var itemFF in item.FoodTruckFuncionario.ToList())
                {
                    itemFF.Funcionario = null;
                    itemFF.FoodTruck   = null;
                    db.FoodTruckFuncionario.Remove(itemFF);
                }

                db.FoodTruck.Remove(item);
                db.SaveChanges();
                scope.Complete();
            }
        }
Ejemplo n.º 8
0
        public IActionResult Update(int foodTruckId, FoodTruck editedTruck)
        {
            if (ModelState.IsValid == false)
            {
                return(View("Edit", editedTruck));
            }

            FoodTruck selectedTruck = db.FoodTrucks.FirstOrDefault(truck => truck.FoodTruckId == foodTruckId);

            if (selectedTruck == null)
            {
                return(RedirectToAction("All"));
            }

            selectedTruck.Name        = editedTruck.Name;
            selectedTruck.Style       = editedTruck.Style;
            selectedTruck.Description = editedTruck.Description;
            selectedTruck.UpdatedAt   = DateTime.Now;

            db.FoodTrucks.Update(selectedTruck);
            db.SaveChanges();

            // new {} dictionary is full of paramName value pairs for Details action
            // every param that the action needs, must be a key in the dictionary
            return(RedirectToAction("Details", new { foodTruckId = selectedTruck.FoodTruckId }));
        }
        public Result <FoodTruck> CreateFoodTruck(CreateFoodTruckCommand foodTruckInfo)
        {
            // Creates our Food Truck object
            var foodTruck = new FoodTruck(foodTruckInfo.Name, foodTruckInfo.Description, foodTruckInfo.Website);

            // Converts tag strings into tag objects (including creating tags that don't exist)
            var tagObjects = DecodeTags(foodTruckInfo.Tags);

            // Attaches the tags to the Food Truck Object
            tagObjects.ForEach(obj => foodTruck.AddTag(obj));

            // Social Media Accounts
            foreach (var accountInfo in foodTruckInfo.SocialMediaAccounts)
            {
                var platform = _socialMediaPlatformRepository.GetSocialMediaPlatform(accountInfo.SocialMediaPlatformId);
                if (platform == null)
                {
                    throw new InvalidDataException($"The id {accountInfo.SocialMediaPlatformId} is not a valid social media platform id");
                }

                SocialMediaAccount account = new SocialMediaAccount(platform, foodTruck, accountInfo.AccountName);
                foodTruck.AddSocialMediaAccount(account);
            }

            // Persist to the database
            _foodTruckRepository.Save(foodTruck);
            UnitOfWork.SaveChanges();

            return(Result.Success <FoodTruck>(foodTruck));
        }
Ejemplo n.º 10
0
        public FoodTruck CreateFoodTruck(CreateFoodTruckCommand foodTruckInfo)
        {
            try
            {
                // Creates our Food Truck object
                var foodTruck = new FoodTruck(foodTruckInfo.Name, foodTruckInfo.Description, foodTruckInfo.Website);

                // Converts tag strings into tag objects (including creating tags that don't exist)
                var tagObjects = this.DecodeTags(foodTruckInfo.Tags);

                // Attaches the tags to the Food Truck Object
                tagObjects.ForEach(obj => foodTruck.AddTag(obj));

                // Persist to the database
                this.foodTruckRepository.Save(foodTruck);
                this.UnitOfWork.SaveChanges();

                return(foodTruck);
            }
            catch (Exception ex)
            {
                Logger.LogError(new EventId(104), ex, $"Error thrown while calling FoodTruckService.CreateFoodTruck()");
                throw;
            }
        }
        public IActionResult ReviewTruck(Review newReview, int foodTruckId)
        {
            // in case we need to return the view for error messages, we need to send the view model as well, which is the selected FoodTruck
            FoodTruck selectedTruck = db.FoodTrucks
                                      .Include(truck => truck.Reviews)
                                      .ThenInclude(review => review.Author)
                                      .FirstOrDefault(truck => truck.FoodTruckId == foodTruckId);

            if (ModelState.IsValid == false)
            {
                return(View("Details", selectedTruck));
            }

            bool alreadyReviewed = db.Reviews.Any(review => review.UserId == uid && review.FoodTruckId == newReview.FoodTruckId);

            if (alreadyReviewed)
            {
                ModelState.AddModelError("Body", "Already Reviewed");
                return(View("Details", selectedTruck));
            }

            newReview.UserId = (int)uid;
            db.Reviews.Add(newReview);
            db.SaveChanges();
            return(RedirectToAction("Details", new { foodTruckId = newReview.FoodTruckId }));
        }
        public async Task <IActionResult> Edit(int id, [Bind("FoodTruckId,FoodTruckName,ProfileViews,Latitude,Longitude,CuisineType,TruckHistory,TruckCrew,IdentityUserId")] FoodTruck foodTruck)
        {
            if (id != foodTruck.FoodTruckId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(foodTruck);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FoodTruckExists(foodTruck.FoodTruckId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdentityUserId"] = new SelectList(_context.Users, "Id", "Id", foodTruck.IdentityUserId);
            return(View(foodTruck));
        }
        public async Task <IActionResult> Edit(int id, [Bind("FoodTruckID,Name,LocationID")] FoodTruck foodTruck)
        {
            if (id != foodTruck.FoodTruckID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(foodTruck);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FoodTruckExists(foodTruck.FoodTruckID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["LocationID"] = new SelectList(_context.Locations, "LocationID", "LocationID", foodTruck.LocationID);
            return(View(foodTruck));
        }
Ejemplo n.º 14
0
        public HttpResponseMessage Insert(FoodTruck foodTruck)
        {
            var resultado = new HttpResponseMessage();

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    _business.Insert(foodTruck);
                    _businessFuncionario = new FuncionarioBusiness();
                    var entity = _businessFuncionario.GetFuncionarioByEmail(foodTruck.EmailFuncionario);
                    resultado = Request.CreateResponse(HttpStatusCode.OK, entity);
                    scope.Complete();
                }
            }
            catch (ExceptionBusiness ex)
            {
                resultado = ProcessarExcecaoWeb(ex, true);
            }
            catch (Exception ex)
            {
                resultado = ProcessarExcecaoWeb(ex);
            }

            return(resultado);
        }
        public IActionResult Update(FoodTruck editedTruck, int foodTruckId)
        {
            if (ModelState.IsValid == false)
            {
                return(View("Edit", editedTruck)); // display error messages
            }

            FoodTruck dbTruck = db.FoodTrucks.FirstOrDefault(truck => truck.FoodTruckId == editedTruck.FoodTruckId);

            // if the name is being changed
            if (editedTruck.Name != dbTruck.Name)
            {
                bool isNameTaken = db.FoodTrucks.Any(truck => truck.Name == editedTruck.Name);

                if (isNameTaken)
                {
                    ModelState.AddModelError("Name", "is taken");
                    return(View("Edit", editedTruck)); // display error messages
                }
            }

            // none of the above returns happened, safe to update

            dbTruck.UpdatedAt   = DateTime.Now;
            dbTruck.Name        = editedTruck.Name;
            dbTruck.Style       = editedTruck.Style;
            dbTruck.Description = editedTruck.Description;

            db.Update(dbTruck);
            db.SaveChanges();
            return(RedirectToAction("Dashboard"));
        }
Ejemplo n.º 16
0
        public IActionResult Review(int foodTruckId, Review newReview)
        {
            if (ModelState.IsValid == false)
            {
                FoodTruck selectedTruck = db.FoodTrucks
                                          .Include(truck => truck.UploadedBy)
                                          .Include(truck => truck.Reviews)
                                          // then include because I want to include something from truck.Reviews, not from the truck itself
                                          .ThenInclude(review => review.Author)
                                          .FirstOrDefault(truck => truck.FoodTruckId == foodTruckId);

                return(View("Details", selectedTruck));
            }

            // Associate the author of the review
            newReview.UserId = (int)uid;

            // this assignment happens automatically because they are named the same
            // newReview.FoodTruckId = foodTruckId;

            db.Reviews.Add(newReview);
            db.SaveChanges();


            // new {} dictionary is full of paramName value pairs for Details action
            // every param that the action needs, must be a key in the dictionary
            return(RedirectToAction("Details", new { foodTruckId = newReview.FoodTruckId }));
        }
Ejemplo n.º 17
0
        public IActionResult Put(int foodTruckId, [FromBody] List <string> tags)
        {
            FoodTruck foodTruck = this.foodTruckService.UpdateFoodTruckTags(foodTruckId, tags);

            var model = this.mapper.Map <FoodTruck, FoodTruckModel>(foodTruck);

            return(this.Ok(model));
        }
        public IActionResult Post(int foodTruckId, [FromBody] List <string> tags)
        {
            FoodTruck foodTruck = _foodTruckService.AddFoodTruckTags(foodTruckId, tags);

            var model = _mapper.Map <FoodTruck, FoodTruckModel>(foodTruck);

            return(Ok(model));
        }
Ejemplo n.º 19
0
        public int CreateFoodTruck(FoodTruck foodTruck)
        {
            if (_authenticatedUser.Role != UserRoleEnum.Admin)
            {
                throw new AuthenticationException("Invalid Role");
            }

            return(_foodTruckSqlAccess.CreateFoodTruck(foodTruck, _authenticatedUser.UserId));
        }
        public IActionResult Post([FromBody]CreateFoodTruckModel createModel)
        {
            var createCommand = this.mapper.Map<CreateFoodTruckModel, CreateFoodTruckCommand>(createModel);

            FoodTruck foodTruck = this.foodTruckService.CreateFoodTruck(createCommand);

            var model = this.mapper.Map<FoodTruck, FoodTruckModel>(foodTruck);
            return this.CreatedAtRoute(GET_FOOD_TRUCK_BY_ID, new { id = model.FoodTruckId }, model);
        }
Ejemplo n.º 21
0
        public void UpdateFoodTruck(FoodTruck foodTruck)
        {
            if (_authenticatedUser.Role != UserRoleEnum.Admin)
            {
                throw new AuthenticationException("Invalid Role");
            }

            _foodTruckSqlAccess.UpdateFoodTruck(foodTruck, _authenticatedUser.UserId);
        }
        public FoodTruckOwnerInformation(FoodTruck foodTruck)
        {
            InitializeComponent();

            this.foodTruck = foodTruck;
            this.foodTruckOwnerInformationVM = new FoodTruckOwnerInformationViewModel();

            BindingContext = foodTruckOwnerInformationVM.GetInformations(foodTruck.Cnpj);
        }
 public IActionResult Post([FromBody] FoodTruck FoodTruck)
 {
     if (ModelState.IsValid)
     {
         service.Save(FoodTruck);
         return(Ok(new CreatedAtRouteResult("create FoodTruck", new { Id = FoodTruck.Id }, FoodTruck)));
     }
     return(BadRequest(ModelState));
 }
Ejemplo n.º 24
0
        public IActionResult Delete(int id)
        {
            foodTrucks = context.FoodTrucks.ToList();
            FoodTruck foodTruck = foodTrucks.SingleOrDefault(f => f.ID == id);

            context.Remove(foodTruck);
            context.SaveChanges();
            return(RedirectToAction(actionName: nameof(Index)));
        }
Ejemplo n.º 25
0
        public ActionResult Add(FoodTruck truck)
        {
            _session.Store(truck);

            var user = _accountant.GetUser(HttpContext);
            user.FoodTrucks.Add(new FoodTruckAccount { FoodTruckId = truck.Id });

            _session.SaveChanges();
            return RedirectToAction("Index");
        }
Ejemplo n.º 26
0
        public IActionResult PostV11([FromBody] CreateFoodTruckModelV11 createModel)
        {
            var createCommand = _mapper.Map <CreateFoodTruckModelV11, CreateFoodTruckCommand>(createModel);

            FoodTruck foodTruck = _foodTruckService.CreateFoodTruck(createCommand);

            var model = _mapper.Map <FoodTruck, FoodTruckModelV11>(foodTruck);

            return(CreatedAtRoute(GET_FOOD_TRUCK_BY_ID, new { id = model.FoodTruckId }, model));
        }
        public IActionResult Put([FromBody] FoodTruck FoodTruck, int id)
        {
            if (FoodTruck.Id != id)
            {
                return(BadRequest());
            }

            service.Update(FoodTruck);
            return(Ok());
        }
        public IActionResult Put(int id, [FromBody]UpdateFoodTruckModel updateModel)
        {
            var updateCommand = new UpdateFoodTruckCommand() { FoodTruckId = id };
            this.mapper.Map<UpdateFoodTruckModel, UpdateFoodTruckCommand>(updateModel, updateCommand);

            FoodTruck foodTruck = this.foodTruckService.UpdateFoodTruck(updateCommand);

            var model = this.mapper.Map<FoodTruck, FoodTruckModel>(foodTruck);
            return this.Ok(model);
        }
        public IActionResult Delete(int foodTruckId)
        {
            FoodTruck dbTruck = db.FoodTrucks.FirstOrDefault(truck => truck.FoodTruckId == foodTruckId);

            db.FoodTrucks.Remove(dbTruck);
            db.SaveChanges();

            // succinct version
            // db.FoodTrucks.Remove(db.FoodTrucks.FirstOrDefault(truck => truck.FoodTruckId == foodTruckId));
            return(RedirectToAction("Dashboard"));
        }
Ejemplo n.º 30
0
        public async Task <IActionResult> Create(FoodTruck foodTruck)
        {
            if (ModelState.IsValid)
            {
                _context.Add(foodTruck);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(foodTruck));
        }
Ejemplo n.º 31
0
        public void FoodTruckModelCorrectlyMapsFoodTruckWithoutTags()
        {
            // Arrange
            var foodTruck = new FoodTruck(1, "All American Burger", "Burgers, Brats, Hot Dogs and More", @"http://allamericanburger.foodtruck.com");

            // Act
            var model = mapper.Map <FoodTruckModel>(foodTruck);

            // Assert
            model.Tags.Should().BeEmpty();
        }
Ejemplo n.º 32
0
 public FoodTruckEx(FoodTruck truck)
 {
     mTruck = truck;
 }
Ejemplo n.º 33
0
        public static bool MoveToNewLot(FoodTruck ths)
        {
            /*
            if ((ths.RoutingComponent != null) && ths.RoutingComponent.IsRouting)
            {
                return true;
            }
            */
            if (ths.ReferenceList.Count > 0x0)
            {
                return false;
            }

            return (SimClock.ElapsedTime(TimeUnit.Hours, ths.mTimeAtCurrentLot) >= ths.FoodTruckTuning.HoursToStayOnLot);
        }
Ejemplo n.º 34
0
 public static void AddMapTags(FoodTruck truck)
 {
     if (Household.ActiveHousehold != null)
     {
         foreach (Sim sim in Household.ActiveHousehold.Sims)
         {
             if (sim.IsHuman && sim.SimDescription.ChildOrAbove)
             {
                 MapTagManager mapTagManager = sim.MapTagManager;
                 if (mapTagManager != null)
                 {
                     if (mapTagManager.HasTag(truck))
                     {
                         mapTagManager.RefreshTag(truck);
                     }
                     else
                     {
                         mapTagManager.AddTag(new FoodTruckMapTag(truck, sim));
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 35
0
 public FoodTruckMapTag(FoodTruck vehicle, Sim owner)
     : base(vehicle, owner)
 { }
Ejemplo n.º 36
0
 public static void RouteToNewLot(FoodTruck ths, Lot lot)
 {
     ths.mDestinationLot = lot;
     new FoodTruckEx(ths).RouteTruckToLot();
 }