Exemplo n.º 1
0
        public ActionResult Available()
        {
            List <AvailableListingGeneralInfoView> model = AvailableListingGeneralInfoHelpers.GetAllAvailableListingsGeneralInfoView(User);

            Company userCompany = CompanyHelpers.GetCompanyForUser(User);

            ViewBag.CurrentCompanyId = userCompany.CompanyId;

            return(View(model));
        }
Exemplo n.º 2
0
        public ActionResult Requirements()
        {
            List <RequirementListingGeneralInfoView> model = RequirementListingGeneralInfoHelpers.GetAllRequirementListingsGeneralInfoView(User);

            Company userCompany = CompanyHelpers.GetCompanyForUser(User);

            ViewBag.CurrentCompanyId = userCompany.CompanyId;

            return(View(model));
        }
Exemplo n.º 3
0
        public ActionResult ProcessButton(string buttonName)
        {
            string[] keys = buttonName.Split(':');

            string buttonType    = keys[0];
            string buttonLevel   = keys[1];
            Guid   ofReferenceId = Guid.Empty;
            Guid   byAppUserId   = Guid.Empty;

            Guid.TryParse(keys[2], out ofReferenceId);
            Guid.TryParse(keys[3], out byAppUserId);

            Guid      byReferenceId = Guid.Empty;
            LevelEnum levelEnum     = LevelEnum.User;

            //Set the byReference to be either the user, the user's branch or the user's company depending on level
            switch (buttonLevel)
            {
            case "company":
                levelEnum     = LevelEnum.Company;
                byReferenceId = CompanyHelpers.GetCompanyForUser(byAppUserId).CompanyId;
                break;

            case "branch":
                levelEnum     = LevelEnum.Branch;
                byReferenceId = AppUserHelpers.GetAppUser(byAppUserId).CurrentBranchId;
                break;

            case "user":
                levelEnum     = LevelEnum.User;
                byReferenceId = byAppUserId;
                break;
            }

            switch (buttonType)
            {
            case "block":
                BlockHelpers.CreateBlock(levelEnum, ofReferenceId, byReferenceId, byAppUserId);
                break;

            case "friend":
                FriendHelpers.CreateFriend(levelEnum, ofReferenceId, byReferenceId, byAppUserId);
                break;

            case "group":
                //Need to go to Group screen to select a group or allow adding of a new group
                return(RedirectToAction("Create", "Groups", new { level = levelEnum, ofReferenceId = ofReferenceId, byReferenceId = byReferenceId, appUserid = byAppUserId }));
            }

            return(Json(new { success = true }));
        }
Exemplo n.º 4
0
        //// GET: Branches
        //public ActionResult Index()
        //{
        //    return View(db.Branches.ToList());
        //}

        //// GET: Branches/Details/5
        //public ActionResult Details(Guid? id)
        //{
        //    if (id == null)
        //    {
        //        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //    }
        //    Branch branch = db.Branches.Find(id);
        //    if (branch == null)
        //    {
        //        return HttpNotFound();
        //    }
        //    return View(branch);
        //}

        // GET: Branches/Create
        public ActionResult Create()
        {
            ViewBag.CompanyId = CompanyHelpers.GetCompanyForUser(User).CompanyId;
            return(View());
        }
Exemplo n.º 5
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                //If this is a new user and company then set to ACTIVE and an ADMIN role, else set to ON-HOLD and USER role and await activating by admin for branch/company of user and/or new branch details.
                EntityStatusEnum statusForUser   = EntityStatusEnum.Active;
                UserRoleEnum     userRoleForUser = UserRoleEnum.Admin;

                //initialise the task creation flags
                bool createUserOnHoldTask   = false;
                bool createBranchOnHoldTask = false;

                if (model.SelectedCompanyId.HasValue)
                {
                    statusForUser   = EntityStatusEnum.OnHold;
                    userRoleForUser = UserRoleEnum.User;
                }

                //Create a new AppUser then write here
                AppUser appUser = AppUserHelpers.CreateAppUser(model.FirstName, model.LastName, Guid.Empty, statusForUser, model.Email, PrivacyLevelEnum.None, userRoleForUser);

                Company    company    = null;
                Branch     branch     = null;
                BranchUser branchUser = null;

                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, AppUserId = appUser.AppUserId, FullName = model.FirstName + " " + model.LastName, CurrentUserRole = userRoleForUser
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //only log in if this user is not set to on-hold
                    if (!model.SelectedCompanyId.HasValue)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                    }
                    else  //we will need to create a task for the branch
                    {
                        createUserOnHoldTask = true;
                    }

                    //Now Update related entities
                    //Company
                    bool createCompany = true;

                    if (model.SelectedCompanyId.HasValue)
                    {
                        if (model.SelectedCompanyId.Value != Guid.Empty)
                        {
                            createCompany = false;
                        }
                    }

                    if (createCompany)
                    {
                        company = CompanyHelpers.CreateCompany(Guid.Empty, model.CompanyName, model.CompanyRegistrationDetails, model.CharityRegistrationDetails, model.VATRegistrationDetails, model.AllowBranchTrading, PrivacyLevelEnum.None, statusForUser);
                    }
                    else
                    {
                        company = CompanyHelpers.GetCompany(model.SelectedCompanyId.Value);
                    }


                    //Branch
                    bool createBranch = true;

                    if (model.SelectedBranchId.HasValue)
                    {
                        if (model.SelectedBranchId.Value != Guid.Empty)
                        {
                            createBranch = false;
                        }
                    }

                    if (createBranch)
                    {
                        string branchName = model.BranchName;
                        if (!model.SelectedCompanyId.HasValue)
                        {
                            branchName = "Head Office";
                        }

                        if (createCompany) //use details stored against company part of model
                        {
                            branch = BranchHelpers.CreateBranch(company.CompanyId, model.CompanyBusinessType.Value, branchName, model.CompanyAddressLine1, model.CompanyAddressLine2, model.CompanyAddressLine3, model.CompanyAddressTownCity, model.CompanyAddressCounty, model.CompanyAddressPostcode, model.CompanyTelephoneNumber, model.CompanyEmail, model.CompanyContactName, company.PrivacyLevel, statusForUser);
                        }
                        else
                        {
                            //set last addAdminUsers flag to true as this is a new branch on an existing company so all Admin users need to be associated with this branch
                            branch = BranchHelpers.CreateBranch(company.CompanyId, model.BranchBusinessType.Value, branchName, model.BranchAddressLine1, model.BranchAddressLine2, model.BranchAddressLine3, model.BranchAddressTownCity, model.BranchAddressCounty, model.BranchAddressPostcode, model.BranchTelephoneNumber, model.BranchEmail, model.BranchContactName, company.PrivacyLevel, statusForUser);
                            createBranchOnHoldTask = true;
                        }

                        //Company - set head office branch as the newly created branch for this new company (defaults to 'Head Office')
                        if (!model.SelectedCompanyId.HasValue)
                        {
                            company = CompanyHelpers.UpdateCompanyHeadOffice(company.CompanyId, branch.BranchId);
                        }
                    }
                    else
                    {
                        branch = BranchHelpers.GetBranch(model.SelectedBranchId.Value);
                    }

                    //BranchUser - set the status as ACTIVE as the link is active even though the entities linked are not.
                    branchUser = BranchUserHelpers.CreateBranchUser(appUser.AppUserId, branch.BranchId, company.CompanyId, userRoleForUser, EntityStatusEnum.Active);

                    //if addAdminUsersToThisBranch is true then add all admin users for the company to this branch
                    BranchUserHelpers.CreateBranchAdminUsersForNewBranch(branch, userRoleForUser);

                    //Update AppUser with the branch we are adding/using to set as current branch for new user
                    appUser = AppUserHelpers.UpdateCurrentBranchId(appUser.AppUserId, branch.BranchId);

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    //Task creation
                    if (createUserOnHoldTask)
                    {
                        UserTaskHelpers.CreateUserTask(TaskTypeEnum.UserOnHold, "New user on hold, awaiting administrator/manager activation", appUser.AppUserId, appUser.AppUserId, EntityStatusEnum.Active);
                    }

                    if (createBranchOnHoldTask)
                    {
                        UserTaskHelpers.CreateUserTask(TaskTypeEnum.BranchOnHold, "New branch on hold, awaiting administrator activation", branch.BranchId, appUser.AppUserId, EntityStatusEnum.Active);
                    }


                    if (model.SelectedCompanyId.HasValue)
                    {
                        return(RedirectToAction("Confirmation"));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }

                //Delete the appUser account as this has not gone through
                AppUserHelpers.DeleteAppUser(appUser.AppUserId);
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form - set up the drop downs dependant on what was there originally from the model
            if (model.SelectedCompanyId.HasValue)
            {
                ViewBag.CompanyList = ControlHelpers.AllCompaniesListDropDown(model.SelectedCompanyId.Value);
                if (model.SelectedBranchId.HasValue)
                {
                    ViewBag.BranchList = ControlHelpers.AllBranchesForCompanyListDropDown(model.SelectedCompanyId.Value, model.SelectedBranchId.Value);
                }
                else
                {
                    ViewBag.BranchList = new SelectList(Enumerable.Empty <SelectListItem>(), "BranchId", "BranchName");
                }
            }
            else
            {
                ViewBag.CompanyList = ControlHelpers.AllCompaniesListDropDown();
                ViewBag.BranchList  = new SelectList(Enumerable.Empty <SelectListItem>(), "BranchId", "BranchName");
            }

            ViewBag.BusinessTypeList = ControlHelpers.BusinessTypeEnumListDropDown();

            return(View(model));
        }