public WorkgroupServiceTests()
        {
            AutomapperConfig.Configure();
            VendorRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<Vendor, string>>();
            VendorAddressRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<VendorAddress, Guid>>();
            UserRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<User, string>>();
            EmailPreferencesRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<EmailPreferences, string>>();
            WorkgroupPermissionRepository = MockRepository.GenerateStub<IRepository<WorkgroupPermission>>();
            WorkgroupRepository = MockRepository.GenerateStub<IRepository<Workgroup>>();
            OrganizationRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<Organization, string>>();
            SearchService = MockRepository.GenerateStub<IDirectorySearchService>();
            RepositoryFactory = MockRepository.GenerateStub<IRepositoryFactory>();
            RepositoryFactory.RoleRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<Role, string>>();
            RepositoryFactory.WorkgroupPermissionRepository = WorkgroupPermissionRepository;
            RepositoryFactory.AccountRepository = MockRepository.GenerateStub<IRepositoryWithTypedId<Account, string>>();
            QueryRepositoryFactory = MockRepository.GenerateStub<IQueryRepositoryFactory>();
            UserIdentity = MockRepository.GenerateStub<IUserIdentity>();

            QueryRepositoryFactory.RelatatedWorkgroupsRepository =
                MockRepository.GenerateStub<IRepository<RelatedWorkgroups>>();

            WorkgroupService = new WorkgroupService(VendorRepository,
                VendorAddressRepository,
                UserRepository,
                EmailPreferencesRepository,
                WorkgroupPermissionRepository,
                WorkgroupRepository,
                OrganizationRepository,
                SearchService,
                RepositoryFactory, QueryRepositoryFactory, UserIdentity);
        }
 public WizardController(IRepository <Workgroup> workgroupRepository,
                         IRepositoryWithTypedId <User, string> userRepository,
                         IRepositoryWithTypedId <Role, string> roleRepository,
                         IRepository <WorkgroupPermission> workgroupPermissionRepository,
                         ISecurityService securityService,
                         IDirectorySearchService searchService,
                         IRepository <WorkgroupVendor> workgroupVendorRepository,
                         IRepositoryWithTypedId <Vendor, string> vendorRepository,
                         IRepositoryWithTypedId <VendorAddress, Guid> vendorAddressRepository,
                         IRepositoryWithTypedId <State, string> stateRepository,
                         IRepository <WorkgroupAccount> workgroupAccountRepository,
                         IQueryRepositoryFactory queryRepositoryFactory,
                         IWorkgroupAddressService workgroupAddressService,
                         IWorkgroupService workgroupService,
                         IRepositoryFactory repositoryFactory)
 {
     _workgroupRepository           = workgroupRepository;
     _userRepository                = userRepository;
     _roleRepository                = roleRepository;
     _workgroupPermissionRepository = workgroupPermissionRepository;
     _securityService               = securityService;
     _searchService              = searchService;
     _workgroupVendorRepository  = workgroupVendorRepository;
     _vendorRepository           = vendorRepository;
     _vendorAddressRepository    = vendorAddressRepository;
     _stateRepository            = stateRepository;
     _workgroupAccountRepository = workgroupAccountRepository;
     _queryRepositoryFactory     = queryRepositoryFactory; //New, need to add to get tests to run.
     _workgroupAddressService    = workgroupAddressService;
     _workgroupService           = workgroupService;
     _repositoryFactory          = repositoryFactory;
 }
        public WorkgroupServiceTests()
        {
            AutomapperConfig.Configure();
            VendorRepository              = MockRepository.GenerateStub <IRepositoryWithTypedId <Vendor, string> >();
            VendorAddressRepository       = MockRepository.GenerateStub <IRepositoryWithTypedId <VendorAddress, Guid> >();
            UserRepository                = MockRepository.GenerateStub <IRepositoryWithTypedId <User, string> >();
            EmailPreferencesRepository    = MockRepository.GenerateStub <IRepositoryWithTypedId <EmailPreferences, string> >();
            WorkgroupPermissionRepository = MockRepository.GenerateStub <IRepository <WorkgroupPermission> >();
            WorkgroupRepository           = MockRepository.GenerateStub <IRepository <Workgroup> >();
            OrganizationRepository        = MockRepository.GenerateStub <IRepositoryWithTypedId <Organization, string> >();
            SearchService     = MockRepository.GenerateStub <IDirectorySearchService>();
            RepositoryFactory = MockRepository.GenerateStub <IRepositoryFactory>();
            RepositoryFactory.RoleRepository = MockRepository.GenerateStub <IRepositoryWithTypedId <Role, string> >();
            RepositoryFactory.WorkgroupPermissionRepository = WorkgroupPermissionRepository;
            RepositoryFactory.AccountRepository             = MockRepository.GenerateStub <IRepositoryWithTypedId <Account, string> >();
            QueryRepositoryFactory = MockRepository.GenerateStub <IQueryRepositoryFactory>();
            UserIdentity           = MockRepository.GenerateStub <IUserIdentity>();

            QueryRepositoryFactory.RelatatedWorkgroupsRepository =
                MockRepository.GenerateStub <IRepository <RelatedWorkgroups> >();

            WorkgroupService = new WorkgroupService(VendorRepository,
                                                    VendorAddressRepository,
                                                    UserRepository,
                                                    EmailPreferencesRepository,
                                                    WorkgroupPermissionRepository,
                                                    WorkgroupRepository,
                                                    OrganizationRepository,
                                                    SearchService,
                                                    RepositoryFactory, QueryRepositoryFactory, UserIdentity);
        }
Beispiel #4
0
 public WorkgroupVendorController(IRepository <Vendor> vendorRepository, IRepository <VendorAddress> vendorAddressRepository, IRepositoryFactory repositoryFactory, ISearchService searchService, ISecurityService securityService, IWorkgroupService workgroupService)
 {
     _vendorRepository        = vendorRepository;
     _vendorAddressRepository = vendorAddressRepository;
     _repositoryFactory       = repositoryFactory;
     _searchService           = searchService;
     _securityService         = securityService;
     _workgroupService        = workgroupService;
 }
Beispiel #5
0
 public AdminController(IRepositoryWithTypedId <User, string> userRepository, IRepositoryWithTypedId <Role, string> roleRepository, IRepositoryWithTypedId <Organization, string> organizationRepository, IDirectorySearchService searchService, IRepositoryWithTypedId <EmailPreferences, string> emailPreferencesRepository, IUserIdentity userIdentity, IRepositoryFactory repositoryFactory, IWorkgroupService workgroupService)
 {
     _userRepository             = userRepository;
     _roleRepository             = roleRepository;
     _organizationRepository     = organizationRepository;
     _searchService              = searchService;
     _emailPreferencesRepository = emailPreferencesRepository;
     _userIdentity      = userIdentity;
     _repositoryFactory = repositoryFactory;
     _workgroupService  = workgroupService;
 }
Beispiel #6
0
 public ReportController(IRepositoryFactory repositoryFactory, IQueryRepositoryFactory queryRepositoryFactory,
                         IReportRepositoryFactory reportRepositoryFactory, IReportService reportService,
                         IWorkgroupService workgroupService, ISearchService searchService)
 {
     _repositoryFactory       = repositoryFactory;
     _queryRepositoryFactory  = queryRepositoryFactory;
     _reportRepositoryFactory = reportRepositoryFactory;
     _reportService           = reportService;
     _workgroupService        = workgroupService;
     _searchService           = searchService;
 }
        public static ReportWorkloadViewModel Create(IRepositoryFactory repositoryFactory, IQueryRepositoryFactory queryRepositoryFactory, IWorkgroupService workgroupService, string userName, Workgroup workgroup)
        {
            var workgroups = workgroupService.LoadAdminWorkgroups();

            var viewModel = new ReportWorkloadViewModel()
                                {
                                    Workgroups = workgroups,
                                    Workgroup = workgroup
                                };

            return viewModel;
        }
        public static ReportProcessingTimeViewModel Create(IWorkgroupService workgroupService, Workgroup workgroup, bool onlyShowReRouted)
        {
            var workgroups = workgroupService.LoadAdminWorkgroups();

            var viewModel = new ReportProcessingTimeViewModel()
            {
                Workgroups       = workgroups,
                Workgroup        = workgroup,
                OnlyShowReRouted = onlyShowReRouted,
                Columns          = new List <ReportProcessingColumns>()
            };

            return(viewModel);
        }
Beispiel #9
0
        /// <summary>
        /// Setups the controller.
        /// </summary>
        protected override void SetupController()
        {
            UserRepository             = MockRepository.GenerateStub <IRepositoryWithTypedId <User, string> >();
            RoleRepository             = MockRepository.GenerateStub <IRepositoryWithTypedId <Role, string> >();
            OrganizationRepository     = MockRepository.GenerateStub <IRepositoryWithTypedId <Organization, string> >();
            SearchService              = MockRepository.GenerateStub <IDirectorySearchService>();
            EmailPreferencesRepository = MockRepository.GenerateStub <IRepositoryWithTypedId <EmailPreferences, string> >();
            UserIdentity = MockRepository.GenerateStub <IUserIdentity>();

            WorkgroupService  = MockRepository.GenerateStub <IWorkgroupService>();
            RepositoryFactory = MockRepository.GenerateStub <IRepositoryFactory>();
            RepositoryFactory.WorkgroupRepository           = MockRepository.GenerateStub <IRepository <Workgroup> >();
            RepositoryFactory.WorkgroupPermissionRepository = MockRepository.GenerateStub <IRepository <WorkgroupPermission> >();

            Controller = new TestControllerBuilder().CreateController <AdminController>(UserRepository, RoleRepository, OrganizationRepository, SearchService, EmailPreferencesRepository, UserIdentity, RepositoryFactory, WorkgroupService);
        }
Beispiel #10
0
        /// <summary>
        /// Setups the controller.
        /// </summary>
        protected override void SetupController()
        {
            WorkgroupRepository              = FakeRepository <Workgroup>();
            UserRepository                   = MockRepository.GenerateStub <IRepositoryWithTypedId <User, string> >();
            RoleRepository                   = MockRepository.GenerateStub <IRepositoryWithTypedId <Role, string> >();
            SecurityService                  = MockRepository.GenerateStub <ISecurityService>();
            SearchService                    = MockRepository.GenerateStub <IDirectorySearchService>();
            WorkgroupPermissionRepository    = MockRepository.GenerateStub <IRepository <WorkgroupPermission> >();
            WorkgroupVendorRepository        = MockRepository.GenerateStub <IRepository <WorkgroupVendor> >();
            VendorRepository                 = MockRepository.GenerateStub <IRepositoryWithTypedId <Vendor, string> >();
            VendorAddressRepository          = MockRepository.GenerateStub <IRepositoryWithTypedId <VendorAddress, Guid> >();
            StateRepository                  = MockRepository.GenerateStub <IRepositoryWithTypedId <State, string> >();
            EmailPreferencesRepository       = MockRepository.GenerateStub <IRepositoryWithTypedId <EmailPreferences, string> >();
            WorkgroupAccountRepository       = MockRepository.GenerateStub <IRepository <WorkgroupAccount> >();
            WorkgroupAddressService          = MockRepository.GenerateStub <IWorkgroupAddressService>();
            WorkgroupService                 = MockRepository.GenerateStub <IWorkgroupService>();
            OrganizationDescendantRepository = MockRepository.GenerateStub <IRepository <OrganizationDescendant> >();
            QueryRepositoryFactory           = MockRepository.GenerateStub <IQueryRepositoryFactory>();
            QueryRepositoryFactory.OrganizationDescendantRepository = OrganizationDescendantRepository;

            AdminWorkgroupRepository = MockRepository.GenerateStub <IRepository <AdminWorkgroup> >();
            QueryRepositoryFactory.AdminWorkgroupRepository = AdminWorkgroupRepository;
            AccountRepository = MockRepository.GenerateStub <IRepositoryWithTypedId <Account, string> >();

            RepositoryFactory = MockRepository.GenerateStub <IRepositoryFactory>();
            RepositoryFactory.AccountRepository           = AccountRepository;
            RepositoryFactory.RoleRepository              = RoleRepository;
            RepositoryFactory.ColumnPreferencesRepository =
                MockRepository.GenerateStub <IRepositoryWithTypedId <ColumnPreferences, string> >();

            Controller = new TestControllerBuilder().CreateController <WorkgroupController>(WorkgroupRepository,
                                                                                            UserRepository,
                                                                                            RoleRepository,
                                                                                            WorkgroupPermissionRepository,
                                                                                            SecurityService,
                                                                                            SearchService,
                                                                                            WorkgroupVendorRepository,
                                                                                            VendorRepository,
                                                                                            VendorAddressRepository,
                                                                                            StateRepository,
                                                                                            EmailPreferencesRepository,
                                                                                            WorkgroupAccountRepository,
                                                                                            QueryRepositoryFactory,
                                                                                            RepositoryFactory,
                                                                                            WorkgroupAddressService,
                                                                                            WorkgroupService);
        }
Beispiel #11
0
        static void Main(string[] args)
        {
            UserInterface     userInterface     = new UserInterface();
            ClientAccount     clientAccount     = new ClientAccount();
            ConnectionHandler connectionHandler = new ConnectionHandler();
            int userCommand;

            IWorkgroupService    workgroupProxy    = null; //Null as we're creating it upon login...
            IRegistrationService registrationProxy = connectionHandler.registrationChannel.CreateChannel();

            do
            {
                userCommand = userInterface.AnonymousUserInterface(ref workgroupProxy, registrationProxy, connectionHandler, clientAccount);
                if (userCommand == 0)
                {
                    connectionHandler.CloseRegistrationChannel();
                    connectionHandler.CloseWorkgroupChannel();
                    return;
                }
            } while (!clientAccount.Authenticated);

            Console.WriteLine("Succesffully authenticated!");

            connectionHandler.CloseRegistrationChannel(); //Registration channel is no longer needed, close it.
            registrationProxy = null;

            if (clientAccount.ClientGroup == "Administrator") //Napravite enumeraciju za Grupe u Common biblioteci...
            {
                userInterface.AdminWindow(clientAccount, workgroupProxy);
            }
            else //User ? Boss? Director?
            {
                userInterface.WorkerWindow(clientAccount, workgroupProxy, connectionHandler);
            }

            Console.ReadLine();
        }
        public static ReportProcessingTimeViewModel Create(IWorkgroupService workgroupService, Workgroup workgroup, bool onlyShowReRouted)
        {
            var workgroups = workgroupService.LoadAdminWorkgroups();

            var viewModel = new ReportProcessingTimeViewModel()
                                {
                                    Workgroups = workgroups,
                                    Workgroup = workgroup,
                                    OnlyShowReRouted = onlyShowReRouted,
                                    Columns = new List<ReportProcessingColumns>()
                                };

            return viewModel;
        }
Beispiel #13
0
        public static ReportPermissionsViewModel Create(IRepositoryFactory repositoryFactory, IWorkgroupService workgroupService)
        {
            var viewModel = new ReportPermissionsViewModel()
            {
                Workgroups = workgroupService.LoadAdminWorkgroups()
            };

            viewModel.Permissions = viewModel.Workgroups.SelectMany(a => a.Permissions);
            viewModel.Users       = viewModel.Permissions.Select(a => a.User).Distinct();

            return(viewModel);
        }
 public WorkgroupApiController()
 {
     _service = new WorkgroupService();
 }
Beispiel #15
0
        public static ReportPermissionsViewModel Create(IRepositoryFactory repositoryFactory, IWorkgroupService workgroupService, bool hideInherited = false)
        {
            var viewModel = new ReportPermissionsViewModel()
            {
                Workgroups = workgroupService.LoadAdminWorkgroups()
            };

            viewModel.Permissions = viewModel.Workgroups.SelectMany(a => a.Permissions);

            if (hideInherited)
            {
                viewModel.Users       = viewModel.Permissions.Where(w => !w.IsAdmin).Select(a => a.User).Distinct();
                viewModel.Permissions = viewModel.Permissions.Where(a => !a.IsAdmin);
            }
            else
            {
                viewModel.Users = viewModel.Permissions.Select(a => a.User).Distinct();
            }

            viewModel.HideInherited = hideInherited;

            return(viewModel);
        }
        public void GenerateDisplayTable(ISearchService indexSearchService, IRepositoryFactory repositoryFactory, IWorkgroupService workgroupService, int workgroupId, DateTime month)
        {
            const int defaultResultSize = 1000;

            Check.Require(month.Day == 1);
            var endMonth = month.AddMonths(1);

            var workgroup          = repositoryFactory.WorkgroupRepository.Queryable.Single(a => a.Id == workgroupId);
            var allChildWorkgroups = new List <int>();

            allChildWorkgroups.Add(workgroupId);
            if (workgroup.Administrative)
            {
                allChildWorkgroups = workgroupService.GetChildWorkgroups(workgroupId);
            }

            Columns = new List <ReportProcessingColumns>();
            var workgroups     = repositoryFactory.WorkgroupRepository.Queryable.Where(a => allChildWorkgroups.Contains(a.Id)).ToList();
            var matchingOrders = indexSearchService.GetOrdersByWorkgroups(workgroups, month, endMonth, defaultResultSize);

            SearchResultsCount = matchingOrders.Count;

            foreach (var matchingOrder in matchingOrders.Where(a => a.IsComplete && a.StatusId != OrderStatusCode.Codes.Denied && a.StatusId != OrderStatusCode.Codes.Cancelled))
            {
                var column = new ReportProcessingColumns();
                var order  = repositoryFactory.OrderRepository.Queryable.Single(a => a.Id == matchingOrder.OrderId);

                column.Organization       = order.Workgroup.PrimaryOrganization.Id;
                column.Workgroup          = order.Workgroup.Name;
                column.OrderRequestNumber = order.RequestNumber;
                column.OrderId            = order.Id;
                var orderHistory = order.OrderTrackings.LastOrDefault(a => a.StatusCode.Id == OrderStatusCode.Codes.AccountManager && a.Description.StartsWith("approved"));
                if (orderHistory != null)
                {
                    column.ArrivedAtPurchaser = orderHistory.DateCreated;
                }

                orderHistory = order.OrderTrackings.LastOrDefault(a => a.Description.StartsWith("rerouted to purchaser"));
                if (orderHistory != null)
                {
                    column.ReroutedToPurchaserDate = orderHistory.DateCreated;
                    column.ReRoutedToPurchaserBy   = orderHistory.User.FullName;
                    column.ReroutedToPurchaserName = orderHistory.Description.Substring(22);
                    if (column.ArrivedAtPurchaser != null)
                    {
                        column.ReRoutTime = column.ReroutedToPurchaserDate.Value - column.ArrivedAtPurchaser.Value;
                    }
                }
                else if (OnlyShowReRouted)
                {
                    continue;
                }
                orderHistory = order.OrderTrackings.FirstOrDefault(a => a.StatusCode.IsComplete);
                if (orderHistory != null)
                {
                    column.CompletedByPurchaserDate = orderHistory.DateCreated;
                    column.CompletedByPurchaserName = orderHistory.User.FullName;
                    if (column.ArrivedAtPurchaser != null && column.ReroutedToPurchaserDate != null)
                    {
                        column.CompletionTime = column.CompletedByPurchaserDate.Value - column.ReroutedToPurchaserDate.Value;
                    }
                    else if (column.ArrivedAtPurchaser != null && column.ReroutedToPurchaserDate == null)
                    {
                        column.CompletionTime = column.CompletedByPurchaserDate.Value - column.ArrivedAtPurchaser.Value;
                    }
                }
                Columns.Add(column);
            }
        }
Beispiel #17
0
        public void WorkerWindow(ClientAccount ca, IWorkgroupService workgroupProxy, ConnectionHandler connectionHandler)
        {
            User u      = workgroupProxy.FindUser(ca.Username);
            int  choice = 0;
            bool ok     = false;

            do
            {
                Console.WriteLine("**********************************************");
                Console.WriteLine("Hello " + u.Username);
                Console.WriteLine("1. Request to get in the team");
                Console.WriteLine("2. Request for vacation");
                Console.WriteLine("3. Change password");
                Console.WriteLine("4. Logout");

                if (ca.ClientGroup == "Boss")
                {
                    Console.WriteLine("5. See list of requests");
                }

                do
                {
                    Console.Write("Choice: ");

                    if (!Int32.TryParse(Console.ReadLine(), out choice))
                    {
                        Console.WriteLine("Choice is a number!");
                    }
                    ok = true;
                } while (ok != true);

                switch (choice)
                {
                case 1:
                {
                    try
                    {
                        workgroupProxy.Ask(u.Username);
                        Console.WriteLine("Your request for joining group is sent");
                    }
                    catch (FaultException fe)
                    {
                        Console.WriteLine(fe.Message, fe.Reason);
                    }
                    break;
                }

                case 2:
                {
                    DateTime timeNow = DateTime.Now;
                    int      result = 0;
                    int      result2 = 0;
                    string   start, end;
                    do
                    {
                        Console.WriteLine("Starting date[mm/dd/yyyy]: ");
                        start = Console.ReadLine();
                        try
                        {
                            DateTime dt = Convert.ToDateTime(start);
                            result = DateTime.Compare(Convert.ToDateTime(start), timeNow);               //ako je start pre trenutka onda je result = -1
                        }
                        catch
                        {
                            Console.WriteLine("Not a good date format.");
                        }
                    } while (result <= 0);


                    do
                    {
                        Console.WriteLine("Ending date[mm/dd/yyyy]: ");
                        end = Console.ReadLine();
                        try
                        {
                            DateTime dt = Convert.ToDateTime(end);
                            result  = DateTime.Compare(Convert.ToDateTime(end), timeNow);
                            result2 = DateTime.Compare(Convert.ToDateTime(end), Convert.ToDateTime(start));
                        }
                        catch
                        {
                            Console.WriteLine("Not a good date format.");
                        }
                    } while (result <= 0 || result2 <= 0);

                    try
                    {
                        workgroupProxy.RequestVacation(u.Username, start, end);
                    }
                    catch (FaultException fe)
                    {
                        Console.WriteLine(fe.Reason);
                    }


                    break;
                }

                case 3:
                {
                    bool correctpass = false;
                    do
                    {
                        Console.WriteLine("Input old password");
                        string oldpass = Console.ReadLine();
                        if (u.Password != oldpass)
                        {
                            Console.WriteLine("You entered wrong password.");
                        }
                        Console.WriteLine("Input new password");
                        string newpass = Console.ReadLine();
                        try
                        {
                            correctpass = workgroupProxy.ChangePassword(u.Username, oldpass, newpass);
                        }
                        catch (FaultException fe)
                        {
                            Console.WriteLine(fe.Reason);
                        }
                    } while (correctpass == false);
                    break;
                }

                case 4:
                {
                    bool loggedout = false;
                    loggedout = workgroupProxy.Logout(u.Username);
                    Environment.Exit(0);
                    break;
                }

                case 5:
                {
                    List <Request> list = workgroupProxy.AllRequests(u.Username);
                    int            no   = list.Count;

                    if (no != 0)
                    {
                        Console.WriteLine("**********REQUESTS********");
                        foreach (Request r in list)
                        {
                            Console.WriteLine("User that asked for vacation: " + r.UserId);
                            Console.WriteLine("Id: " + r.Id);
                            Console.WriteLine("Starting date: " + r.StartDate);
                            Console.WriteLine("Ending date: " + r.EndDate);
                        }
                        Console.WriteLine("**********************");
                        Console.WriteLine("1. Approve request");
                        Console.WriteLine("2. Deny request");
                        Console.WriteLine("Choice: ");
                        int choice2 = Int32.Parse(Console.ReadLine());
                        if (choice2 == 1)
                        {
                            Console.WriteLine("Input ID of request you want to approve");
                            int id;

                            if (!Int32.TryParse(Console.ReadLine(), out id))
                            {
                                Console.WriteLine("ID is number!");
                                break;
                            }

                            try
                            {
                                workgroupProxy.ApproveRequest(id, ca.Username);
                            }
                            catch (FaultException fe)
                            {
                                Console.WriteLine(fe.Reason);
                            }
                        }
                        else if (choice2 == 2)
                        {
                            Console.WriteLine("Input ID of request you want to deny");
                            int id;

                            if (!Int32.TryParse(Console.ReadLine(), out id))
                            {
                                Console.WriteLine("ID is number!");
                                break;
                            }

                            try
                            {
                                workgroupProxy.DenyRequest(id, ca.Username);
                            }
                            catch (FaultException fe)
                            {
                                Console.WriteLine(fe.Reason);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("There are no requests for vacation.");
                    }

                    break;
                }
                }
            } while (choice != 4);
        }
Beispiel #18
0
        public void AdminWindow(ClientAccount ca, IWorkgroupService workgroupProxy)
        {
            User u = workgroupProxy.FindUser(ca.Username);

            Console.WriteLine("***********************");
            Console.WriteLine("Hello admin");

            int  choice = 0;
            bool ok     = false;

            do
            {
                Console.WriteLine("1. See requests for groups");
                Console.WriteLine("2. See requests for vacation");
                Console.WriteLine("3. Name boss");
                Console.WriteLine("4. Change password");
                Console.WriteLine("5. Logout");

                do
                {
                    Console.Write("Choice: ");

                    if (!Int32.TryParse(Console.ReadLine(), out choice))
                    {
                        Console.WriteLine("Choice is a number!");
                    }
                    ok = true;
                } while (ok != true);

                switch (choice)
                {
                case 1:
                {
                    List <User> list = workgroupProxy.UsersForJoin();
                    int         i    = 0;

                    int choice2;

                    int no = list.Count;
                    if (no != 0)
                    {
                        Console.WriteLine("Put users in group:");
                        foreach (User user in list)
                        {
                            i++;
                            Console.WriteLine("{0}. {1}", i, user.Username);
                        }

                        do
                        {
                            bool   correct = false;
                            string username;
                            int    teamId;

                            do
                            {
                                Console.WriteLine("Enter username of user you want to put in group:");
                                username = Console.ReadLine();

                                foreach (User user in list)
                                {
                                    if (user.Username == username)
                                    {
                                        correct = true;
                                    }
                                }

                                if (correct == false)
                                {
                                    Console.WriteLine("You put wrong username!");
                                }
                            } while (correct != true);

                            do
                            {
                                Console.WriteLine("In which team (1, 2, 3, 4, 5...) you want to put him?");

                                if (Int32.TryParse(Console.ReadLine(), out teamId))
                                {
                                    correct = true;
                                }
                                else
                                {
                                    Console.WriteLine("Name of a team is number!");
                                    correct = false;
                                }
                            } while(correct != true);

                            try
                            {
                                workgroupProxy.AddToTeam(username, teamId);
                            }
                            catch (FaultException fe)
                            {
                                Console.WriteLine(fe.Reason);
                            }
                            Console.WriteLine("For exit, press 0");
                            choice2 = Int32.Parse(Console.ReadLine());
                        } while (choice2 != 0);
                    }
                    else
                    {
                        Console.WriteLine("There are no requests for joining to group.");
                        break;
                    }
                    break;
                }

                case 2:
                {
                    List <Request> list = workgroupProxy.AllRequests(u.Username);
                    int            no   = list.Count;

                    if (no != 0)
                    {
                        Console.WriteLine("**********REQUESTS********");
                        foreach (Request r in list)
                        {
                            Console.WriteLine("User that asked for vacation: " + r.UserId);
                            Console.WriteLine("Id: " + r.Id);
                            Console.WriteLine("Starting date: " + r.StartDate);
                            Console.WriteLine("Ending date: " + r.EndDate);
                        }
                        Console.WriteLine("**************************************");
                        Console.WriteLine("1. Approve request");
                        Console.WriteLine("2. Deny request");
                        Console.WriteLine("Choice: ");
                        int choice2 = Int32.Parse(Console.ReadLine());

                        if (choice2 == 1)
                        {
                            Console.WriteLine("Input ID of request you want to approve");
                            int id;

                            if (!Int32.TryParse(Console.ReadLine(), out id))
                            {
                                Console.WriteLine("ID is number!");
                                break;
                            }

                            try
                            {
                                workgroupProxy.ApproveRequest(id, ca.Username);
                            }
                            catch (FaultException fe)
                            {
                                Console.WriteLine(fe.Reason);
                            }
                        }
                        else if (choice2 == 2)
                        {
                            Console.WriteLine("Input ID of request you want to deny");
                            int id;

                            if (!Int32.TryParse(Console.ReadLine(), out id))
                            {
                                Console.WriteLine("ID is number!");
                                break;
                            }

                            try
                            {
                                workgroupProxy.ApproveRequest(id, ca.Username);
                            }
                            catch (FaultException fe)
                            {
                                Console.WriteLine(fe.Reason);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("There are no requests for vacation.");
                    }
                    break;
                }

                case 3:
                {
                    Console.WriteLine("List of workers");
                    List <User> list = workgroupProxy.AllUsers();
                    foreach (User user in list)
                    {
                        Console.WriteLine("username: {0} team: {1}", user.Username, user.Team);
                    }

                    string boss;
                    int    team;
                    bool   correct = false;

                    do
                    {
                        Console.WriteLine("Who do you want to name as boss?");
                        boss = Console.ReadLine();

                        foreach (User user in list)
                        {
                            if (user.Username == boss)
                            {
                                correct = true;
                            }
                        }

                        if (correct == false)
                        {
                            Console.WriteLine("You put wrong username!");
                        }
                    } while (correct != true);


                    do
                    {
                        Console.WriteLine("He/She will be boss of which team?");

                        if (Int32.TryParse(Console.ReadLine(), out team))
                        {
                            correct = true;
                        }
                        else
                        {
                            Console.WriteLine("Name of a team is number!");
                            correct = false;
                        }
                    } while (correct != true);

                    try
                    {
                        workgroupProxy.NameBoss(boss, team);
                    }
                    catch (FaultException fe)
                    {
                        Console.WriteLine(fe.Reason);
                    }
                    break;
                }

                case 4:
                {
                    bool correctpass = false;
                    do
                    {
                        Console.WriteLine("Input old password");
                        string oldpass = Console.ReadLine();
                        if (u.Password != oldpass)
                        {
                            Console.WriteLine("You entered wrong password.");
                        }

                        Console.WriteLine("Input new password");
                        string newpass = Console.ReadLine();
                        try
                        {
                            correctpass = workgroupProxy.ChangePassword(u.Username, oldpass, newpass);
                        }
                        catch (FaultException fe)
                        {
                            Console.WriteLine(fe.Reason);
                        }
                    } while (correctpass == false);
                    break;
                }

                case 5:
                {
                    bool loggedout = false;
                    loggedout = workgroupProxy.Logout(u.Username);
                    Environment.Exit(0);
                    break;
                }
                }
            } while (choice != 5);
        }
Beispiel #19
0
        public static ReportWorkloadViewModel Create(IRepositoryFactory repositoryFactory, IQueryRepositoryFactory queryRepositoryFactory, IWorkgroupService workgroupService, string userName, Workgroup workgroup)
        {
            var workgroups = workgroupService.LoadAdminWorkgroups();

            var viewModel = new ReportWorkloadViewModel()
            {
                Workgroups = workgroups,
                Workgroup  = workgroup
            };

            return(viewModel);
        }
        public void GenerateDisplayTable(ISearchService indexSearchService, IRepositoryFactory repositoryFactory,IWorkgroupService workgroupService, int workgroupId, DateTime month)
        {
            Check.Require(month.Day == 1);
            var endMonth = month.AddMonths(1);

            var workgroup = repositoryFactory.WorkgroupRepository.Queryable.Single(a => a.Id == workgroupId);
            var allChildWorkgroups = new List<int>();
            allChildWorkgroups.Add(workgroupId);
            if (workgroup.Administrative)
            {
                allChildWorkgroups = workgroupService.GetChildWorkgroups(workgroupId);
            }

            Columns = new List<ReportProcessingColumns>();
            var workgroups = repositoryFactory.WorkgroupRepository.Queryable.Where(a => allChildWorkgroups.Contains(a.Id)).ToList();
            var matchingOrders = indexSearchService.GetOrdersByWorkgroups(workgroups, month, endMonth);
            foreach (var matchingOrder in matchingOrders.Where(a => a.IsComplete && a.StatusId != OrderStatusCode.Codes.Denied && a.StatusId != OrderStatusCode.Codes.Cancelled))
            {

                var column = new ReportProcessingColumns();
                var order = repositoryFactory.OrderRepository.Queryable.Single(a => a.Id == matchingOrder.OrderId);

                column.Organization = order.Workgroup.PrimaryOrganization.Id;
                column.Workgroup = order.Workgroup.Name;
                column.OrderRequestNumber = order.RequestNumber;
                column.OrderId = order.Id;
                var orderHistory = order.OrderTrackings.LastOrDefault(a => a.StatusCode.Id == OrderStatusCode.Codes.AccountManager && a.Description.StartsWith("approved"));
                if (orderHistory != null)
                {
                    column.ArrivedAtPurchaser = orderHistory.DateCreated;
                }

                orderHistory = order.OrderTrackings.LastOrDefault(a => a.Description.StartsWith("rerouted to purchaser"));
                if (orderHistory != null)
                {
                    column.ReroutedToPurchaserDate = orderHistory.DateCreated;
                    column.ReRoutedToPurchaserBy = orderHistory.User.FullName;
                    column.ReroutedToPurchaserName = orderHistory.Description.Substring(22);
                    if (column.ArrivedAtPurchaser != null)
                    {
                        column.ReRoutTime = column.ReroutedToPurchaserDate.Value - column.ArrivedAtPurchaser.Value;
                    }
                }
                else if(OnlyShowReRouted)
                {
                    continue;
                }
                orderHistory = order.OrderTrackings.FirstOrDefault(a => a.StatusCode.IsComplete);
                if (orderHistory != null)
                {
                    column.CompletedByPurchaserDate = orderHistory.DateCreated;
                    column.CompletedByPurchaserName = orderHistory.User.FullName;
                    if (column.ArrivedAtPurchaser != null && column.ReroutedToPurchaserDate != null)
                    {
                        column.CompletionTime = column.CompletedByPurchaserDate.Value - column.ReroutedToPurchaserDate.Value;
                    }
                    else if (column.ArrivedAtPurchaser != null && column.ReroutedToPurchaserDate == null)
                    {
                        column.CompletionTime = column.CompletedByPurchaserDate.Value - column.ArrivedAtPurchaser.Value;
                    }
                }
                Columns.Add(column);
            }
        }
Beispiel #21
0
        public int AnonymousUserInterface(ref IWorkgroupService workgroupProxy, IRegistrationService registrationProxy, ConnectionHandler connectionHandler, ClientAccount clientAccount)
        {
            User user = new User();
            bool operationSuccess;
            int  choice = 0;
            bool ok     = false;

            Console.WriteLine("---AUTHENTICATION SERVICE---\n");
            Console.WriteLine("1. Login");
            Console.WriteLine("2. Register");

            do
            {
                Console.Write("Choice: ");

                if (!Int32.TryParse(Console.ReadLine(), out choice))
                {
                    Console.WriteLine("Choice is a number!");
                }
                ok = true;
            } while (ok != true);

            switch (choice)
            {
            case 1:
            {
                string   answerOne        = null;
                string   answerTwo        = null;
                LoginDTO loginInformation = new LoginDTO();

                InputCredentials(clientAccount);
                if (clientAccount.RequireSafeLogin)
                {
                    Console.WriteLine("Server demands safe login. Input answers to security questions in order to log in");
                    Console.WriteLine(clientAccount.SecurityQuestionOne);
                    answerOne = Console.ReadLine();
                    Console.WriteLine(clientAccount.SecurityQuestionTwo);
                    answerTwo = Console.ReadLine();
                }

                if (connectionHandler.workgroupChannel.Credentials.UserName.UserName != null)        //Reopen channel for new credentials
                {
                    if (connectionHandler.CloseWorkgroupChannel())
                    {
                        connectionHandler.OpenWorkgroupChannel();
                        connectionHandler.workgroupChannel.Credentials.UserName.UserName = clientAccount.Username;
                        connectionHandler.workgroupChannel.Credentials.UserName.Password = clientAccount.Password;
                        workgroupProxy = connectionHandler.workgroupChannel.CreateChannel();
                    }
                }
                else
                {
                    connectionHandler.workgroupChannel.Credentials.UserName.UserName = clientAccount.Username;
                    connectionHandler.workgroupChannel.Credentials.UserName.Password = clientAccount.Password;
                    workgroupProxy = connectionHandler.workgroupChannel.CreateChannel();
                }

                try
                {
                    loginInformation = workgroupProxy.Login(clientAccount.Username, clientAccount.Password, answerOne, answerTwo);
                }

                /*catch(ArgumentException e)
                 * {
                 *  Console.WriteLine(e.Message);
                 * }
                 * catch(FaultException fe)
                 * {
                 *  Console.WriteLine(fe.Message, fe.Reason);
                 * }*/
                catch (Exception e)
                {
                    if (e is FaultException)
                    {
                        Console.WriteLine(e.Message);
                    }
                    if (e is ArgumentException)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                if (loginInformation.Authenticated)
                {
                    clientAccount.Authenticated = true;
                    clientAccount.ClientGroup   = loginInformation.UserGroup;
                }
                else
                {
                    if (loginInformation.SecurityQuestionOne != null)
                    {
                        clientAccount.RequireSafeLogin    = true;
                        clientAccount.SecurityQuestionOne = loginInformation.SecurityQuestionOne;
                        clientAccount.SecurityQuestionTwo = loginInformation.SecurityQuestionTwo;
                    }

                    Console.WriteLine("Failed to log in");
                }

                break;
            }

            case 2:
            {
                User newUserAccount = InputUserInfo();
                try
                {
                    operationSuccess = registrationProxy.Register(newUserAccount);
                    if (operationSuccess)
                    {
                        Console.WriteLine("Successfully registered a new account!");
                    }
                }
                catch (FaultException fe)
                {
                    Console.WriteLine(fe.Message);
                    Console.WriteLine(fe.InnerException);
                }
                break;
            }

            case 0:
                break;
            }
            return(choice);
        }