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));
        }
Exemple #2
0
        public IHttpActionResult EditHousehold(int id, HouseholdViewModel householdData)
        {
            var currentHousehold = DbContext.Households.FirstOrDefault(
                house => house.Id == id);

            var userId = User.Identity.GetUserId();

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

            if (currentHousehold.CreatedById == userId)
            {
                currentHousehold.Name        = householdData.Name;
                currentHousehold.Description = householdData.Description;
                currentHousehold.DateUpdated = DateTime.Today;

                DbContext.SaveChanges();
                return(Ok(currentHousehold));
            }
            else
            {
                return(NotFound());
            }
        }
        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));
        }
Exemple #4
0
        public ActionResult UpdateHousehold(int Id) //Launches 2nd page of OD call log
        {
            Client client = db.Clients.Find(Id);

            if (client == null)
            {
                RedirectToAction("Index");
            }

            HouseholdViewModel houseHold = new HouseholdViewModel()
            {
                ClientId = Id,
                // ReSharper disable once PossibleNullReferenceException
                LastName      = client.LastName,
                FirstName     = client.FirstName,
                Active        = client.Active,
                Age           = AppRoutines.GetAge(client.DateOfBirth, DateTime.Today),
                StreetNumber  = client.StreetNumber,
                StreetName    = client.StreetName,
                City          = client.City,
                Zip           = client.Zip,
                Phone         = client.Phone,
                Notes         = client.Notes,
                FamilyMembers = AppRoutines.GetFamilyMembers(client.Id)
            };
            var newMember = new FamilyMember();

            houseHold.FamilyMembers.Add(newMember);  // Blank line for adding new member.
            newMember.ClientId = -1;
            newMember.Delete   = false;
            return(View(houseHold)); // Launches page UpdateHousehold.cshtml
        }
Exemple #5
0
        static List <HouseholdViewModel> SearchHouseholds(string searchString)
        {
            if (searchString == null)
            {
                return(null);
            }

            var householdView = new List <HouseholdViewModel>();

            using (var db = new BHelpContext())
            {
                List <Client> clientList;
                if (searchString.Any(char.IsDigit))
                {
                    clientList = db.Clients.Where(c => c.Active && c.Phone.Contains(searchString))
                                 .OrderBy(c => c.LastName).ToList();
                }
                else
                {
                    clientList = db.Clients.Where(c => c.Active && c.LastName.Contains(searchString))
                                 .OrderBy(c => c.LastName).ToList();
                }

                foreach (var client in clientList)
                {
                    var household = new HouseholdViewModel()
                    {
                        ClientId      = client.Id,
                        FirstName     = client.FirstName,
                        LastName      = client.LastName,
                        StreetNumber  = client.StreetNumber,
                        StreetName    = client.StreetName,
                        StreetToolTip = client.StreetName.Replace(" ", "\u00a0"),
                        City          = client.City,
                        CityToolTip   = client.City.Replace(" ", "\u00a0"),
                        Zip           = client.Zip,
                        Phone         = client.Phone,
                        PhoneToolTip  = client.Phone.Replace(" ", "\u00a0"),
                        Notes         = client.Notes,
                        // (full length on mouseover)    \u00a0 is the Unicode character for NO-BREAK-SPACE.
                        NotesToolTip = client.Notes.Replace(" ", "\u00a0")
                    };

                    var s = household.StreetName; // For display, abbreviate to 10 characters:
                    s = s.Length <= 10 ? s : s.Substring(0, 10) + "...";
                    household.StreetName = s;
                    s = household.City; // For display, abbreviate to 11 characters:
                    s = s.Length <= 11 ? s : s.Substring(0, 11) + "...";
                    household.City = s;
                    s = household.Phone; // For display, abbreviate to 12 characters:
                    s = s.Length <= 12 ? s : s.Substring(0, 12) + "...";
                    household.Phone = s;
                    s = household.Notes; // For display, abbreviate to 12 characters:
                    s = s.Length <= 12 ? s : s.Substring(0, 12) + "...";
                    household.Notes = s;
                    householdView.Add(household);
                }
            }
            return(householdView);
        }
Exemple #6
0
        // GET: Household
        public ActionResult Index(string callLogDate, string searchString, int?selectedId)
        {
            if (callLogDate.IsNullOrEmpty())
            {
                DateTime cdt  = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day + 1);
                var      cdts = cdt.ToString("MM/dd/yyyy");
                Session["CallLogDate"] = cdts;
            }
            else
            {
                Session["CallLogDate"] = callLogDate;
            }

            if (searchString != null)
            {
                TempData["SearchResults"] = SearchHouseholds(searchString);
            }
            var userIid = System.Web.HttpContext.Current.User.Identity.GetUserId();

            if (userIid != null)
            {
                var user = db.Users.Find(userIid);
                Session["CurrentUserFullName"] = user.FullName;
            }
            ;
            HouseholdViewModel houseHoldView = new HouseholdViewModel();

            return(View(houseHoldView));
        }
        public ActionResult CreateJoinHousehold(Guid?code)
        {
            //If Current USer accessig this page already has a Household, redirect to their dashboard
            if (User.Identity.IsInHousehold())
            {
                return(RedirectToAction("Index", "Home"));
            }

            HouseholdViewModel vm = new HouseholdViewModel();

            //Determine User has been sent an invite and set property values
            if (code != null && ValidateInvite())
            {
                Invite result = db.Invites.FirstOrDefault(i => i.HHToken == code);
                vm.IsJoinHH = true;
                vm.HHId     = result.HouseholdId;
                vm.HHName   = result.Household.Name;

                //Set USED flag to true for this invite
                result.HasBeenUsed = true;

                ApplicationUser user = db.Users.Find(User.Identity.GetUserId());
                user.InviteEmail = result.Email;
                db.SaveChanges();
            }

            return(View(vm));
        }
Exemple #8
0
        /// <summary>
        /// Sends RSVP status replies for the guests in a household. Returns whether we were able to save it or not.
        /// </summary>
        public bool UpdateRsvpStatusForHousehold(HouseholdViewModel householdViewModel)
        {
            foreach (var guestViewModel in householdViewModel.Guests)
            {
                var guest = _guestsContext.Guest.FirstOrDefault(g => g.Id == guestViewModel.Id);
                if (guest == null)
                {
                    return(false);
                }
                // If the guest saved in the DB already has a reply status that is not 'PendingReply', then this guest has already been replied for.
                // This should never be the case in theory (the button to submit should be hidden if guests have already replied), but in case it's some how hacked
                // into visibility, then we can catch the fact here anyway.
                if (guest.RsvpStatusId != EnumUtils.PendingReplyId)
                {
                    return(false);
                }
                guest.RsvpStatusId        = GetRsvpStatusId(guestViewModel.RsvpReply);
                guest.SongRequest         = guestViewModel.SongRequest;
                guest.DietaryRequirements = guestViewModel.DietaryRequirements;
                guest.HotelRequirementId  = (int)guestViewModel.HotelRequirement;
                guest.RequiresTransport   = guestViewModel.RequiresTransport;
            }

            return(_guestsContext.SaveChanges() > 0);
        }
        public ActionResult CreateJoinHouseHold(Guid?code)
        {
            //If the current user accessing this page already has a HouseholdId, send them to their dashboard
            if (User.Identity.IsInHousehold())
            {
                return(RedirectToAction("Details", "Households", new { id = User.Identity.GetHouseholdId() }));
            }

            HouseholdViewModel vm = new HouseholdViewModel();

            if (code != null)
            {
                string msg = "";
                if (ValidInvite(code, ref msg))
                {
                    Invite result = db.Invites.FirstOrDefault(i => i.HHToken == code);
                    vm.IsJoinHouse = true;
                    vm.HHId        = result.HouseholdId;
                    vm.HHName      = result.Household.Name;

                    //Set USED flag to true for this invite

                    result.HasBeenUsed = true;

                    ApplicationUser user = db.Users.Find(User.Identity.GetUserId());
                    user.InviteEmail = result.Email;
                    db.SaveChanges();
                }
                else
                {
                    return(RedirectToAction("InviteError", new { errMsg = msg }));
                }
            }
            return(View(vm));
        }
Exemple #10
0
        public async Task <ActionResult> Create(HouseholdViewModel vm)
        {
            //Create new household
            Household household = new Household();

            //check if name is unique
            if (househldHelper.IsUnique(household.Name) == true)
            {
                household.Name = vm.HouseholdName;
            }
            else
            {
                TempData["NameNotUnique"] = "The Household name you entered is not unique. Please enter a different name.";
                return(RedirectToAction("Create")); //bring create household view back up...
            }

            // add household to database
            fdb.Households.Add(household);
            fdb.SaveChanges();

            //Add the current user as the first member of the new household
            var user = adb.Users.Find(User.Identity.GetUserId());

            household.Users.Add(user);
            fdb.SaveChanges();
            await ControllerContext.HttpContext.RefreshAuthentication(user); //refresh thier cookies and direct them to their dashboard

            return(RedirectToAction("Index", "Home"));
        }
Exemple #11
0
        public ActionResult Edit(HouseholdViewModel householdViewModel)
        {
            if (ModelState.IsValid)
            {
                Household householdData = db.Households.Find(householdViewModel.Id);
                householdData.Name         = householdViewModel.Name;
                householdData.IncomeAnnual = householdViewModel.IncomeAnnual;
                var membersOfHousehold = GetAllMemberIdsForHousehold(householdData.Id);

                if (null == householdViewModel.SelectedMembers)
                {
                    RemoveAllMembersFromHousehold(householdData.Id);
                }
                else
                {
                    foreach (var userId in membersOfHousehold)
                    {
                        if (!householdViewModel.SelectedMembers.Contains(userId))
                        {
                            RemoveHouseholdMember(userId, householdData.Id);
                        }
                    }
                    foreach (var userId in householdViewModel.SelectedMembers)
                    {
                        if (!IsMemberOfHousehold(userId, householdData.Id))
                        {
                            InviteUserToJoinHousehold(userId, householdData.Id);
                        }
                    }
                }
                db.SaveChanges();
                return(RedirectToAction(ActionName.INDEX));
            }
            return(View(householdViewModel));
        }
Exemple #12
0
        public ActionResult Index(HouseholdViewModel household, string deleteId)
        {
            // Check Client data
            var client = db.Clients.Find(household.ClientId);

            if (client != null)
            {
                client.StreetNumber = household.StreetNumber;
                client.StreetName   = household.StreetName;
                client.City         = household.City;
                client.Zip          = household.Zip;
                client.Notes        = household.Notes;
                client.Phone        = household.Phone;

                foreach (var member in household.FamilyMembers)
                {
                    if (member.Id == 0 && member.ClientId == 0) // is Head of Household
                    {
                        client.FirstName   = member.FirstName;
                        client.LastName    = member.LastName;
                        client.DateOfBirth = DateTime.Today.AddYears(-member.Age);
                    }
                    else if (member.Id == 0 && member.ClientId < 0)     //Adding new member (ClientId = -1)
                    {
                        var familyMember = new FamilyMember();
                        if (member.FirstName != null || member.LastName != null)
                        {
                            familyMember.ClientId    = client.Id;
                            familyMember.Active      = true;
                            familyMember.Delete      = false;
                            familyMember.FirstName   = member.FirstName;
                            familyMember.LastName    = member.LastName;
                            familyMember.DateOfBirth = DateTime.Today.AddYears(-member.Age);
                            db.FamilyMembers.Add(familyMember);
                        }
                    }
                    else
                    {
                        var familyMember = db.FamilyMembers.Find(member.Id);
                        if (familyMember != null)
                        {
                            familyMember.FirstName   = member.FirstName;
                            familyMember.LastName    = member.LastName;
                            familyMember.DateOfBirth = DateTime.Today.AddYears(-member.Age);
                            if (member.Delete == true)
                            {
                                db.FamilyMembers.Remove(familyMember);
                            }
                        }
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("UpdateHousehold", "OD", new { Id = client.Id }));
            }
            return(null);
        }
Exemple #13
0
        // GET: Households
        public ActionResult Dashboard()
        {
            var userId  = User.Identity.GetUserId();
            var houseId = db.Users.AsNoTracking().FirstOrDefault(u => u.Id == userId).HouseholdId;
            var houseVM = new HouseholdViewModel();

            houseVM.Household     = db.Households.Find(houseId);
            ViewBag.AccountTypeId = new SelectList(db.AccountTypes.ToList(), "Id", "Type");
            return(View(houseVM));
        }
        public ActionResult Create()
        {
            var model = new HouseholdViewModel()
            {
                Image = (byte[])this.TempData["image"] ?? this.imageService.LoadHouseholdDefaultImage(),
                ImageUploadMessage = (string)this.TempData[CommonConstants.UploadMessage]
            };

            return(View(model));
        }
        public ActionResult Index()
        {
            var householdId = this.webHelper.GetHouseholdIdFromCookie();
            var household   = this.householdService.GetHousehold(householdId);

            var model = new HouseholdViewModel();

            mappingService.Map <HouseholdManager.Models.Household, HouseholdViewModel>(household, model);

            return(View(model));
        }
        public ActionResult Create(HouseholdViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect("/Error/BadRequest"));
            }

            this.householdService.CreateHousehold(model.Name, model.Address, model.Image, this.webHelper.GetUserId());

            return(RedirectToAction("SetCurrentHousehold", new { name = model.Name }));
        }
Exemple #17
0
        public async Task <ActionResult> JoinHousehold(HouseholdViewModel vm)
        {
            Household hh   = db.Households.Find(vm.HHId);
            var       user = db.Users.Find(User.Identity.GetUserId());

            hh.Members.Add(user);
            db.SaveChanges();

            await ControllerContext.HttpContext.RefreshAuthentication(user);

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <ActionResult> JoinHousehold(HouseholdViewModel vm) //action user clicks when they have been sent an invite link
        {
            Household household = db.Households.Find(vm.HouseholdId);
            var       user      = db.Users.Find(User.Identity.GetUserId());

            household.Members.Add(user);
            db.SaveChanges();

            await ControllerContext.HttpContext.RefreshAuthentication(user);

            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult JoinHousehold(HouseholdViewModel vm)
        {
            Household hh = new Household();

            hh.Name = vm.HHName;

            vm.Member = db.Users.Find(User.Identity.GetUserId());

            db.Households.Add(hh);
            db.SaveChanges();

            return(RedirectToAction("Index", "Households"));
        }
Exemple #20
0
 public IActionResult SendRsvpReply(HouseholdViewModel householdViewModel)
 {
     try
     {
         _guestsRepository.UpdateRsvpStatusForHousehold(householdViewModel);
         return(View(householdViewModel));
     }
     catch (Exception ex)
     {
         // TODO DS log ex
         return(RedirectToAction("Index"));
     }
 }
        public async Task <ActionResult> JoinHousehold(HouseholdViewModel vm)
        {
            ApplicationDbContext userDB = new ApplicationDbContext();
            Household            hh     = db.Households.Find(vm.HHId);
            var user = userDB.Users.Find(User.Identity.GetUserId());

            hh.Members.Add(user);
            db.SaveChanges();

            await ControllerContext.HttpContext.RefreshAuthentication(user);

            return(RedirectToAction("Details", "Home", new { id = User.Identity.GetHouseholdId() }));
        }
        public ActionResult CreateJoinHousehold(Guid?code)  //creating household that a person joined
        {
            //If the current user accessing this page already has a HouseholdId, send them to their dashboard
            if (User.Identity.IsInHousehold())
            {
                return(RedirectToAction("Index", "Home"));
            }

            HouseholdViewModel household = new HouseholdViewModel(); //getting info for user without household to create a household

            //Determine whether the user has been sent an invite and set property values
            if (code != null) //code sent via email (or some other means)
            {
                string msg = "";
                if (ValidInvite(code, ref msg)) //validate invitation code (ref = access variable by reference (default is usually value))
                {
                    Invite result = db.Invites.FirstOrDefault(i => i.HHToken == code);

                    household.IsJoinHouse   = true;
                    household.HouseholdId   = result.HouseholdId;
                    household.HouseholdName = result.Household.Name;

                    //Set USED flag to true for this invite

                    result.HasBeenUsed = true;

                    ApplicationUser user = db.Users.Find(User.Identity.GetUserId());
                    user.InviteEmail = result.Email;
                    db.SaveChanges();
                }
                else
                {
                    //if there's an error, throw a sweet alert to tell the user and redirect them to the home index
                    switch (msg)
                    {
                    case "invalid":
                        TempData["InvalidInvite"] = "Invalid household join attempt. You will be redirected.";
                        break;

                    case "expired":
                        TempData["ExpiredInvite"] = "This invite has expired. Try creating your own.";
                        break;

                    default:
                        break;
                    }
                    return(RedirectToAction("Index", "Home"));
                }
            }
            return(View(household));
        }
        public ActionResult Details(int?id)
        {
            HouseholdViewModel model = new HouseholdViewModel();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            model.household = db.Households.Find(id);
            if (model.household == null)
            {
                return(HttpNotFound());
            }
            return(View(model));
        }
Exemple #24
0
        public HouseholdPage()
        {
            InitializeComponent();
            BindingContext = viewModel = new HouseholdViewModel();

            if (Device.RuntimePlatform == Device.UWP)
            {
                // windows
                RowDefition_Chart1.Height = 250;
                RowDefition_Chart2.Height = 250;
            }
            else if (Device.RuntimePlatform == Device.Android)
            {
                //android
                RowDefition_Chart1.Height = 200;
                RowDefition_Chart2.Height = 200;
            }
        }
        public IHttpActionResult HouseById(int id)
        {
            var userId = User.Identity.GetUserId();

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

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

            var viewModel = new HouseholdViewModel(myHouseHold)
            {
                IsOwner = myHouseHold.OwnerOfHouse.Id == userId
            };

            return(Ok(viewModel));
        }
        public ActionResult CreateJoinHousehold(Guid?code)
        {
            if (code != null)
            {
                bool   var    = db.Invites.Any(i => i.HHToken == code);
                Invite result = db.Invites.FirstOrDefault(i => i.HHToken == code);
            }


            HouseholdViewModel model = new HouseholdViewModel();

            if (User.Identity.IsInHousehold())
            {
                return(RedirectToAction("Index"));
            }

            return(View());
        }
Exemple #27
0
        public IActionResult Create(HouseholdViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            using (_dbContext)
            {
                var entity = new HaikanRefuseClassification.Api.Entities.SystemUser();
                entity.SystemUserUuid = Guid.NewGuid();
                entity.RealName       = model.RealName;
                entity.Phone          = model.Phone;
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemRoleUuid = "C6BDB5B3-990B-4943-B2A1-1492044E38B8";
                entity.IsDeleted      = 0;
                _dbContext.SystemUser.Add(entity);
                _dbContext.SaveChanges();
                response.SetSuccess();
                return(Ok(response));
            }
        }
        // GET: Households/Details/5
        public ActionResult Details(int?id)
        {
            //CHECK THIS - that household IDs never equal to 0 due to database scheme
            if (id == 0 || id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var hh = db.Households.Find(id);

            HouseholdViewModel hhvm = new HouseholdViewModel {
                HHObj       = hh,
                HHId        = (int)id,
                HHName      = hh.Name,
                IsJoinHouse = false,
                HHInvites   = db.Invites.Where(i => i.HouseholdId == id && i.HasBeenUsed == false).ToList()
            };

            return(View(hhvm));
        }
Exemple #29
0
        public async Task <ActionResult> CreateJoinHousehold(HouseholdViewModel hvm)
        {
            var user = db.Users.Find(User.Identity.GetUserId());

            if (hvm.Code == null) // create household
            {
                if (hvm.Name == null)
                {
                    return(View());
                }
                Household h = new Household {
                    Name = hvm.Name
                };
                db.Households.Add(h);
                db.SaveChanges();
                h.AddCategories();

                user.HouseholdId = h.Id;
            }
            else // join household
            {
                var invite = db.Invitations.FirstOrDefault(m => m.Code == hvm.Code);
                if (invite != null && user.Email == invite.Email)
                {
                    user.HouseholdId = invite.HouseholdId;
                    db.Entry(user).Property(p => p.HouseholdId).IsModified = true;
                }
                else
                {
                    ViewBag.Error = "Sorry, The code and email combination does not match. ";
                    return(View());
                }
            }
            //ApplicationSignInManager SignInManager = HttpContext.GetOwinContext().Get<ApplicationSignInManager>();

            //HttpContext.GetOwinContext().Authentication.SignOut();
            //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
            await ControllerContext.HttpContext.RefreshAuthentication(user);

            db.SaveChanges();

            return(RedirectToAction("Dashboard"));
        }
        public ActionResult CreateJoinHousehold(Guid?code)
        {
            //If the current user accessing this page already has a HouseholdId, send them to their dashboard
            if (User.Identity.IsInHousehold())
            {
                return(RedirectToAction("Details", new { id = User.Identity.GetHouseholdId() }));
            }

            HouseholdViewModel vm = new HouseholdViewModel();

            //Determine whether the user has been sent an invite and set property values
            if (code != null)
            {
                string msg = "";
                if (ValidInvite(code, ref msg))
                {
                    Invite result = db.Invites.FirstOrDefault(i => i.HHToken == code);

                    vm.IsJoinHouse = true;
                    vm.HHId        = result.HouseholdId;
                    vm.HHName      = result.Household.Name;

                    result.HasBeenUsed = true;

                    // FIX THIS - why is this done
                    ApplicationUser user = db.Users.Find(User.Identity.GetUserId());
                    user.InviteEmail = result.Email;
                    db.SaveChanges();
                }
                else
                {
                    //FIX THIS - does not exist
                    return(RedirectToAction("InviteError", new { errMsg = msg }));
                }
            }
            else
            {
                vm.IsJoinHouse = false;
                return(View(vm));
            }
            //fix this - needs route param for household details
            return(RedirectToAction("Details", new { id = vm.HHId }));
        }