Ejemplo n.º 1
0
        private StaffMemberViewModel GetStaffMember(long id)
        {
            var model = new StaffMemberViewModel()
            {
                StatusMessage = StatusMessage
            };

            model.Titles = Title.GetTitles(_context.Titles.Where(c => c.Id > 0).OrderBy(x => x.Value).ToList());

            model.UserDetails = _context.UserDetails.Include(x => x.Company).Include(x => x.Profile).Include(x => x.UserContact).SingleOrDefault(x => x.Id == id);
            model.Customer    = new Customer()
            {
                Company = model.UserDetails.Company
            };

            if (model.UserDetails.Company.UserId == model.UserDetails.UserId)
            {
                model.IsCompanyContact = true;

                model.Customer.Company.UserId = model.UserDetails.UserId;
            }

            model.UserRoles = GetStaffRoles();
            model.Companies = GetCompanies(model.UserDetails.CompanyId);

            return(model);
        }
Ejemplo n.º 2
0
 public AddEditStaff(StaffMemberViewModel Staff)
 {
     aesVM                 = new AddEditStaffViewModel(Staff, false);
     DataContext           = aesVM;
     aesVM.ClosingRequest += (sender, e) => this.Close();
     InitializeComponent();
 }
 public ResolveEveningConflicts(StaffMemberViewModel staffMember, List <EveningJob>[] possibleSelections)
 {
     WindowStyle           = WindowStyle.None;
     recvm                 = new ResolveEveningConflictsViewModel(staffMember, possibleSelections);
     DataContext           = recvm;
     recvm.ClosingRequest += (sender, e) => this.Close();
     InitializeComponent();
 }
Ejemplo n.º 4
0
        public AddEditStaff(List <Preference> preferences)
        {
            var member = new StaffMemberViewModel(new StaffMember("", 0, DateTime.Today, "", "", preferences, ""));

            aesVM                 = new AddEditStaffViewModel(member, true);
            DataContext           = aesVM;
            aesVM.ClosingRequest += (sender, e) => this.Close();
            InitializeComponent();
        }
Ejemplo n.º 5
0
        public ActionResult SaveWaiter(StaffMemberViewModel viewModel)
        {
            var action = new SaveWaiterAction <ActionResult>(ServiceRegistry)
            {
                OnSuccess = () => RedirectToAction("ManageWaiters"),
                OnFailure = (errors) => EditFailed(viewModel.Staff.Id, errors)
            };

            return(action.Invoke(viewModel, ResolveRestaurantId()));
        }
Ejemplo n.º 6
0
        public ActionResult Details(int?id)
        {
            var customer = dbContext.Patient.SingleOrDefault(c => c.Id == id);

            if (customer == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new StaffMemberViewModel
            {
                Patients   = customer,
                StaffRoles = dbContext.JobRole.ToList()
            };

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        public T Invoke(StaffMemberViewModel viewModel, int restaurantId)
        {
            Guard.InstanceNotNull(OnSuccess, "OnSuccess");
            Guard.InstanceNotNull(OnFailure, "OnFailure");
            Guard.InstanceNotNull(viewModel, "viewModel");

            var request = new SaveWaiterRequest
            {
                Staff        = viewModel.Staff,
                RestaurantId = restaurantId,
                StaffMemberHasEmailAddress = !viewModel.StaffMemberHasNoEmailAddress
            };

            var saveWaiterResponse = serviceRegistry.StaffService.SaveStaff(request);

            return(saveWaiterResponse.NotificationCollection.HasErrors() ? OnFailure(saveWaiterResponse.NotificationCollection) : OnSuccess());
        }
Ejemplo n.º 8
0
        // GET: Staffs
        public ActionResult Index()
        {
            if (Convert.ToString(Session["type"]) != "STAFF")
            {
                return(Redirect("/Home"));
            }
            var staffview = new StaffMemberViewModel
            {
                Donors        = db.DonorPersonalDetails.AsEnumerable(),
                Donations     = db.Donations.AsEnumerable(),
                BloodRequests = db.BloodRequests.AsEnumerable(),
                users         = db.AspNetUsers.AsEnumerable(),
                Clinics       = db.Clinics.AsEnumerable(),
                Centres       = db.Centres.AsEnumerable()
            };

            return(View(staffview));
        }
Ejemplo n.º 9
0
 public ResolveEveningConflictsViewModel(StaffMemberViewModel member, List <EveningJob>[] possibleSelections)
 {
     Continue             = new DelegateCommand(ExecuteContinue, CanExcecuteContinue);
     NightConflicts       = new ObservableCollection <NightConflictViewModel>();
     staffMemberViewModel = member;
     RaisePropertyChanged(nameof(Name));
     for (int i = 0; i < 6; i++)
     {
         if (possibleSelections[i].Count < 2)
         {
             continue;
         }
         NightConflicts.Add(new NightConflictViewModel(Continue)
         {
             PossibleOptions = new ObservableCollection <string>(possibleSelections[i].Select(x => x.ToString())),
             Day             = (DayOfWeek)i,
         });
     }
 }
Ejemplo n.º 10
0
        public async Task <IActionResult> StaffContact(StaffMemberViewModel model)
        {
            var userContactInDb = _context.UserContacts.SingleOrDefault(x => x.Id == model.UserDetails.UserContactId);
            var user            = await _userManager.FindByIdAsync(model.UserDetails.UserId);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            userContactInDb.Email       = model.UserDetails.UserContact.Email;
            userContactInDb.MobilePhone = model.UserDetails.UserContact.MobilePhone;
            userContactInDb.OtherPhone  = model.UserDetails.UserContact.OtherPhone;
            userContactInDb.WorkPhone   = model.UserDetails.UserContact.WorkPhone;

            userContactInDb.BuildingNumber = model.UserDetails.UserContact.BuildingNumber;
            userContactInDb.AddressLine1   = model.UserDetails.UserContact.AddressLine1;
            userContactInDb.AddressLine2   = model.UserDetails.UserContact.AddressLine2;
            userContactInDb.PostTown       = model.UserDetails.UserContact.PostTown;
            userContactInDb.County         = model.UserDetails.UserContact.County;
            userContactInDb.Country        = model.UserDetails.UserContact.Country;
            userContactInDb.Postcode       = model.UserDetails.UserContact.Postcode;

            _context.Update(userContactInDb);

            var userInDb = _context.Users.SingleOrDefault(x => x.Id == model.UserDetails.UserId);

            var email = user.Email;

            if (model.UserDetails.UserContact.Email != email)
            {
                var setEmailResult = await _userManager.SetEmailAsync(user, model.UserDetails.UserContact.Email);

                if (!setEmailResult.Succeeded)
                {
                    throw new ApplicationException($"Unexpected error occurred setting email for user with ID '{user.Id}'.");
                }
            }

            _context.SaveChanges();

            return(View(GetStaffMember(model.UserDetails.Id)));
        }
Ejemplo n.º 11
0
        public IActionResult StaffDetail(StaffMemberViewModel model)
        {
            var userInDb    = _context.UserDetails.SingleOrDefault(x => x.Id == model.UserDetails.Id);
            var companyInDb = _context.CompanyDetails.SingleOrDefault(x => x.Id == model.UserDetails.Company.Id);

            userInDb.ForeName  = model.UserDetails.ForeName;
            userInDb.Surname   = model.UserDetails.Surname;
            userInDb.Name      = model.UserDetails.ForeName + " " + model.UserDetails.Surname;
            userInDb.Title     = model.UserDetails.Title;
            userInDb.ProfileId = model.UserDetails.Profile.Id;

            if (userInDb.CompanyId != companyInDb.Id)
            {
                userInDb.CompanyId = companyInDb.Id;

                var contactCompany = _context.CompanyDetails.SingleOrDefault(x => x.UserId == userInDb.UserId);

                if (contactCompany != null)
                {
                    contactCompany.UserId = null;

                    _context.Update(contactCompany);
                }
            }

            _context.Update(userInDb);

            if (model.IsCompanyContact && companyInDb.UserId != model.UserDetails.UserId)
            {
                // set user as company contact
                companyInDb.UserId = model.UserDetails.UserId;

                _context.Update(companyInDb);
            }

            _context.SaveChanges();

            return(View(GetStaffMember(model.UserDetails.Id)));
        }
Ejemplo n.º 12
0
        public T Invoke(int restaurantId, int?waiterId = null)
        {
            Guard.InstanceNotNull(OnComplete, "OnComplete");

            var viewModel = new StaffMemberViewModel();

            if (waiterId.IsNotNull())
            {
                var response = serviceRegistry.StaffService.LoadStaffMember(new LoadStaffMemberRequest
                {
                    StaffId      = waiterId.Value,
                    RestaurantId = restaurantId
                });

                if (response.IsNotNull() && response.Staff.IsNotNull())
                {
                    viewModel.Staff    = response.Staff;
                    viewModel.EditMode = true;
                    viewModel.StaffMemberHasNoEmailAddress = response.Staff.HasNoEmailAddress;
                }
                else
                {
                    viewModel.Notifications.AddError("Failed to load staff member.");
                }
            }
            else
            {
                viewModel.Staff = new StaffDto();
            }

            var collectionResponse = serviceRegistry.StaffService.LoadStaffTypes();

            viewModel.StaffTypes = collectionResponse.StaffTypes;

            return(OnComplete.Invoke(viewModel));
        }
Ejemplo n.º 13
0
 public AddEditStaffViewModel(StaffMemberViewModel _staff, bool isNewStaff)
 {
     IsNewStaff    = isNewStaff;
     selectedStaff = _staff;
     InitValues();
 }