示例#1
0
        public IHttpActionResult Create(HouseholdBindingModel householdBinding)
        {
            if (ModelState is null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = UserManager.FindById(User.Identity.GetUserId());

            var household = new Household
            {
                DateCreated = DateTime.Now,
                DateUpdated = null,
                Name        = householdBinding.Name,
                Description = householdBinding.Description,
                Creator     = user,
                Members     = new List <ApplicationUser>()
                {
                    user // adding the user so they show up in the user list on requests
                }
            };

            DbContext.Households.Add(household);
            DbContext.SaveChanges();

            var householdView = HouseholdHelpers.MapHouseholdToView(household, user.Id);

            return(Created(Url.Link(
                               "GetHouseholdById",
                               new { household.Id }),
                           householdView
                           ));
        }
示例#2
0
        public IHttpActionResult Create(HouseholdBindingModel formData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId    = User.Identity.GetUserId();
            var houseHold = Mapper.Map <HouseHold>(formData);

            houseHold.Created = DateTime.Now;
            houseHold.OwnerId = User.Identity.GetUserId();

            DbContext.HouseHolds.Add(houseHold);
            DbContext.SaveChanges();

            var houseHoldUser = new HouseHoldUser();

            houseHoldUser.HouseHoldId = houseHold.Id;
            houseHoldUser.UserId      = houseHold.OwnerId;
            DbContext.HouseHoldUsers.Add(houseHoldUser);
            DbContext.SaveChanges();

            var model = Mapper.Map <HouseHoldViewModel>(houseHold);

            return(Ok(model));
        }
示例#3
0
        public IHttpActionResult Edit(int?Id, HouseholdBindingModel householdBinding)
        {
            // Two strings so that you can edit only one string? or you have to edit both?
            // Asking here because I can use required tags on the bindingModel

            if (ModelState is null || !ModelState.IsValid) // ++Q : Turn into filter.
            {
                return(BadRequest(ModelState));
            }

            var household = DbContext.Households.FirstOrDefault(p => p.Id == Id);

            if (household is null)
            {
                return(NotFound());
            }

            household.DateUpdated = DateTime.Now;
            household.Name        = householdBinding.Name;
            household.Description = householdBinding.Description;
            DbContext.SaveChanges();

            var userId = User.Identity.GetUserId();

            var householdView = HouseholdHelpers.MapHouseholdToView(household, userId);

            return(Ok(householdView));
        }
示例#4
0
        public IHttpActionResult Edit(int id, HouseholdBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var household = HouseholdHelper.GetById(id);

            if (household == null)
            {
                return(NotFound());
            }

            var currentUserId = User.Identity.GetUserId();
            var IsOwner       = household.IsOwner(currentUserId);

            if (IsOwner)
            {
                Mapper.Map(model, household);
                household.DateUpdated = DateTime.Now;

                DbContext.SaveChanges();

                var viewModel = Mapper.Map <HouseholdViewModel>(household);
                return(Ok(viewModel));
            }
            else
            {
                return(Unauthorized());
            }
        }
示例#5
0
        public ActionResult Create(HouseholdBindingModel formData)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var name        = formData.Name;
            var description = formData.Description;

            var parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("name", name));
            parameters.Add(new KeyValuePair <string, string>("description", description));

            var response = RequestHelper.SendGetRequestAuth(parameters, "Household"
                                                            , "Create", null, MyToken, CusHttpMethod.Post);

            if (response.IsSuccessStatusCode)
            {
                return(RedirectToAction(nameof(HouseholdController.Index)));
            }

            DealBadRequest(response);

            return(View());
        }
        public IHttpActionResult CreateHouseHold(HouseholdBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId = User.Identity.GetUserId();
            var owner  = DbContext.Users.FirstOrDefault(p => p.Id == userId);

            var houseHold = new Household()
            {
                Name           = model.Name,
                Description    = model.Description,
                DateCreated    = DateTime.Now,
                OwnerOfHouse   = owner,
                OwnerOfHouseId = owner.Id
            };

            DbContext.Households.Add(houseHold);
            DbContext.SaveChanges();

            var url = Url.Link("HouseById", new { Id = houseHold.Id });

            var viewModel = new HouseholdViewModel(houseHold)
            {
                DateUpdated = null
            };

            return(Created(url, viewModel));
        }
        public IHttpActionResult Edit(int id, HouseholdBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId    = User.Identity.GetUserId();
            var houseHold = DbContext.Households.FirstOrDefault(p => p.Id == id);

            if (houseHold == null)
            {
                return(NotFound());
            }

            if (userId != houseHold.OwnerOfHouseId)
            {
                return(BadRequest("Sorry, You are not allowed to edit this household."));
            }

            houseHold.Name        = model.Name;
            houseHold.Description = model.Description;
            houseHold.DateUpdated = DateTime.Now;

            DbContext.SaveChanges();

            var viewModel = new HouseholdViewModel(houseHold);

            return(Ok(viewModel));
        }
示例#8
0
        public IHttpActionResult PutHousehold(int id, HouseholdBindingModel bindingModel)
        {
            if (bindingModel == null)
            {
                return(BadRequest("Provide required parameters"));
            }

            var household = hBHelper.GetHouseholdById(id);

            Mapper.Map(bindingModel, household);
            household.Updated = DateTime.Now;
            DbContext.SaveChanges();

            var householdModel = Mapper.Map <HouseholdViewModel>(household);

            return(Ok(householdModel));
        }
示例#9
0
        public ActionResult Edit(int id, HouseholdBindingModel formData)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var name        = formData.Name;
            var description = formData.Description;

            var parameters = new List <KeyValuePair <string, string> >();

            parameters.Add(new KeyValuePair <string, string>("name", name));
            parameters.Add(new KeyValuePair <string, string>("description", description));

            var response = RequestHelper.SendGetRequestAuth(parameters, "Household"
                                                            , "Edit", id, MyToken, CusHttpMethod.Put);

            return(GeneralResDealer(response, true, true, true, true));
        }
示例#10
0
        public IHttpActionResult PostHousehold(HouseholdBindingModel bindingModel)
        {
            if (bindingModel == null)
            {
                return(BadRequest("Provide required parameters"));
            }

            var household = Mapper.Map <Household>(bindingModel);
            var owner     = hBHelper.GetCurrentUser();

            household.OwnerId = owner.Id;
            household.Participants.Add(owner);

            DbContext.Households.Add(household);
            DbContext.SaveChanges();

            var url            = Url.Link("DefaultApi", new { Controller = "HouseHold", Id = household.Id });
            var householdModel = Mapper.Map <HouseholdViewModel>(household);

            return(Created(url, householdModel));
        }
示例#11
0
        public IHttpActionResult Update(int id, HouseholdBindingModel formData)
        {
            var IsHouseHoldExit = Validation.IsHouseHoldExist(id);

            if (!IsHouseHoldExit)
            {
                ModelState.AddModelError("HouserHoldId", "Sorry, The household does not exist on the database");
                return(BadRequest(ModelState));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var userId = User.Identity.GetUserId();
            var isUserOnwerOfHouseHold = Validation.IsOwnerOfHouseHold(id, userId);

            if (!isUserOnwerOfHouseHold)
            {
                ModelState.AddModelError("UserId", "Sorry, You are not the owner of this houseHold");
                return(BadRequest(ModelState));
            }

            var houseHold = DbContext.HouseHolds.FirstOrDefault(p => p.Id == id);

            houseHold.Name        = formData.Name;
            houseHold.Description = formData.Description;
            houseHold.Updated     = DateTime.Now;

            DbContext.SaveChanges();

            var model = new HouseHoldViewModel();

            model.Id          = houseHold.Id;
            model.Name        = houseHold.Name;
            model.Description = houseHold.Description;

            return(Ok(model));
        }
示例#12
0
        public IHttpActionResult CreateHousehold(HouseholdBindingModel model)
        {
            var userId = User.Identity.GetUserId();

            var currentLoggedUser = DbContext.Users.FirstOrDefault(
                usr => usr.Id == userId);

            Household newHouseholde;

            newHouseholde             = new Household();
            newHouseholde.Name        = model.Name;
            newHouseholde.Description = model.Description;
            newHouseholde.CreatedById = userId;
            newHouseholde.DateCreated = DateTime.Today;
            newHouseholde.HouseholdJoinedMembers.Add(currentLoggedUser);

            DbContext.Households.Add(newHouseholde);
            newHouseholde.HouseholdJoinedMembers.Add(currentLoggedUser);
            DbContext.SaveChanges();

            return(Ok());
        }
示例#13
0
        public IHttpActionResult Create(HouseholdBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var appUserId = User.Identity.GetUserId();
            var user      = UserHelper.GetUserById(appUserId);
            var household = Mapper.Map <Household>(model);

            household.OwnerId     = appUserId;
            household.DateCreated = DateTime.Now;

            DbContext.Households.Add(household);
            household.JoinedUsers.Add(user);
            DbContext.SaveChanges();

            var viewModel = Mapper.Map <HouseholdViewModel>(household);

            return(Ok(viewModel));
        }