コード例 #1
0
 public ActionResult PharmacySelect(int pharmacy)
 {
     User.setPharmacy(pharmacy);
     if (pharmacy > -1)
     {
         using (var service = new PharmacistService())
         {
             var pharmacist           = service.GetWhere(PharmacistService.EmailCol == User.Email).FirstOrDefault();
             var serializedPharmacist = new PPOKPrincipalSerializeModel(pharmacist, pharmacy);
             //serializedPharmacist.Pharmacy = User.Pharmacy;
             makeAuthTicket(serializedPharmacist);
         }
         return(RedirectToAction("Index", "LandingPage"));
     }
     else
     {
         using (var service = new SystemAdminService())
         {
             var admin           = service.GetWhere(SystemAdminService.EmailCol == User.Email).FirstOrDefault();
             var serializedAdmin = new PPOKPrincipalSerializeModel(admin);
             serializedAdmin.Pharmacy = User.Pharmacy;
             makeAuthTicket(serializedAdmin);
         }
         return(RedirectToAction("Index", "SystemAdmin"));
     }
 }
コード例 #2
0
ファイル: UseCase6_1_Tests.cs プロジェクト: maorRoz/Sadna
 public void NotSystemAdminTest()
 {
     userServiceSession.EnterSystem();
     userServiceSession.SignIn("Arik2", "123");
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)EditPolicyStatus.NoAuthority, adminServiceSession.CreatePolicy("Global", null, "Quantity <=", "5", "0").Status);
 }
コード例 #3
0
ファイル: UseCase6_1_Tests.cs プロジェクト: maorRoz/Sadna
 public void AddSimplePolicySuccess()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.CreatePolicy("Global", null, "Quantity <=", "5", "0").Status);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.SavePolicy().Status);
 }
コード例 #4
0
 public void RemoveUserInputFailTest()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)RemoveUserStatus.BadInput, adminServiceSession.RemoveUser(badUserName).Status);
     Assert.IsTrue(MarketException.HasErrorRaised());
 }
コード例 #5
0
 public void DidntLoggedTest()
 {
     userServiceSession.EnterSystem();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.NotSystemAdmin, adminServiceSession.ViewPurchaseHistoryByUser(userNameToView1).Status);
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.NotSystemAdmin, adminServiceSession.ViewPurchaseHistoryByStore(storeNameToView2).Status);
 }
コード例 #6
0
 public void SelfTerminationBlockedTest()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)RemoveUserStatus.SelfTermination, adminServiceSession.RemoveUser(adminName).Status);
     Assert.IsTrue(MarketException.HasErrorRaised());
 }
コード例 #7
0
 public void NoUserToRemoveFoundTest()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)RemoveUserStatus.NoUserFound, adminServiceSession.RemoveUser(noUserName).Status);
     Assert.IsTrue(MarketException.HasErrorRaised());
 }
コード例 #8
0
 public void NotSystemAdminTest()
 {
     userServiceSession.EnterSystem();
     userServiceSession.SignIn("Arik2", "123");
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)RemoveUserStatus.NotSystemAdmin, adminServiceSession.RemoveUser(toRemoveUserNameSoleOwner).Status);
 }
コード例 #9
0
 public void NoUserNameTest()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.NoUserFound, adminServiceSession.ViewPurchaseHistoryByUser(noUserName).Status);
     Assert.IsTrue(MarketException.HasErrorRaised());
 }
コード例 #10
0
ファイル: AuthService.cs プロジェクト: thethorne48/PPOK
 private static SystemAdmin AddSystemAdminToken(string email, string token)
 {
     using (var service = new SystemAdminService())
     {
         var sysAdmin = service.GetWhere(SystemAdminService.EmailCol == email).FirstOrDefault();
         if (sysAdmin != null)
         {
             using (var tokenService = new SystemAdminTokenService())
             {
                 var storedToken = tokenService.GetWhere(SystemAdminTokenService.SystemAdminCodeCol == sysAdmin.Code).FirstOrDefault();
                 if (storedToken == null)
                 {
                     tokenService.Create(new SystemAdminToken(sysAdmin, token));
                 }
                 else
                 {
                     storedToken.Token   = token;
                     storedToken.Expires = DateTime.Now.ToUniversalTime().AddHours(Config.TokenDuration);
                     tokenService.Update(storedToken);
                 }
             }
         }
         return(sysAdmin);
     }
 }
コード例 #11
0
ファイル: LoginModel.cs プロジェクト: thethorne48/PPOK
 public LoginModel(string email)
 {
     pharmacyList = new List <Pharmacy>();
     using (var service = new PharmacistService())
     {
         var pharmacist = service.GetWhere(PharmacistService.EmailCol == email).FirstOrDefault();
         if (pharmacist != null)
         {
             var jobs = pharmacist.Jobs;
             foreach (var job in jobs)
             {
                 var pharmacy = job.Pharmacy;
                 pharmacyList.Add(job.Pharmacy);
             }
         }
     }
     using (var service = new SystemAdminService())
     {
         var admin = service.GetWhere(SystemAdminService.EmailCol == email).FirstOrDefault();
         if (admin != null)
         {
             pharmacyList.Add(new Pharmacy(-1, "System Admin", "000-000-0000", "no address"));
         }
     }
 }
コード例 #12
0
ファイル: PPOKPrincipal.cs プロジェクト: thethorne48/PPOK
 public static byte[] HashUserText(SystemAdmin admin, string text)
 {
     using (var service = new SystemAdminService())
     {
         var salt = service.Get(admin.Code).PasswordSalt;
         return(GenerateSaltedHash(Encoding.ASCII.GetBytes(text), salt));
     }
 }
コード例 #13
0
 public JsonResult GetSingleAdmin(int id)
 {
     using (var service = new SystemAdminService())
     {
         var result = service.Get(id);
         return(Json(result));
     }
 }
コード例 #14
0
 public void StoreClosedUponUserRemovalTest()
 {
     ToSignIn(adminName, adminPass);
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)RemoveUserStatus.Success, adminServiceSession.RemoveUser(soleOwnerName).Status);
     storeShoppingService = marketSession.GetStoreShoppingService(ref userServiceSession);
     Assert.AreEqual((int)StoreEnum.StoreNotExists, storeShoppingService.AddProductToCart("Y", "BOX", 3).Status);
 }
コード例 #15
0
        public void RemoveCategorySuccess()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            MarketAnswer ans = adminServiceSession.RemoveCategory("WanderlandItems");

            Assert.AreEqual((int)EditCategoryStatus.Success, ans.Status);
        }
コード例 #16
0
ファイル: AddCategoryTests.cs プロジェクト: maorRoz/Sadna
        public void AddCategorySuccess()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            MarketAnswer ans = adminServiceSession.AddCategory("Good item");

            Assert.AreEqual((int)EditCategoryStatus.Success, ans.Status);
        }
コード例 #17
0
        public void RemoveCategoryWhenCategoryNotExists()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            MarketAnswer ans = adminServiceSession.RemoveCategory("bad item");

            Assert.AreEqual((int)EditCategoryStatus.CategoryNotExistsInSystem, ans.Status);
        }
コード例 #18
0
 public void NotSystemAdminTest()
 {
     userServiceSession.EnterSystem();
     Assert.AreEqual((int)SignInStatus.Success, userServiceSession.SignIn("Arik2", "123").Status);
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.NotSystemAdmin, adminServiceSession.ViewPurchaseHistoryByUser(userNameToView1).Status);
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.NotSystemAdmin, adminServiceSession.ViewPurchaseHistoryByStore(storeNameToView2).Status);
 }
コード例 #19
0
ファイル: AddCategoryTests.cs プロジェクト: maorRoz/Sadna
        public void AddCategoryWhenCategoryAlreadyExists()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            MarketAnswer ans = adminServiceSession.AddCategory("WanderlandItems");

            Assert.AreEqual((int)EditCategoryStatus.CategoryAlradyExist, ans.Status);
        }
コード例 #20
0
ファイル: UseCase6_1_Tests.cs プロジェクト: maorRoz/Sadna
        public void ViewPoliciesTest1()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            MarketAnswer ans = adminServiceSession.ViewPolicies();

            Assert.AreEqual((int)ViewPolicyStatus.Success, ans.Status);
            Assert.AreEqual(1, ans.ReportList.Length);
        }
コード例 #21
0
ファイル: UseCase6_1_Tests.cs プロジェクト: maorRoz/Sadna
 public void AddComplexPolicySuccess2()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.CreatePolicy("Product", "Hash", "Quantity <=", "10", "0").Status);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.CreatePolicy("Product", "Hash", "Username ="******"Ricky", "0").Status);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.CreatePolicy("Product", "Hash", "AND", "0", "1").Status);
     Assert.AreEqual((int)EditPolicyStatus.Success, adminServiceSession.SavePolicy().Status);
 }
コード例 #22
0
 public void SignUpWithDeletedUserDataTest()
 {
     ToSignIn(adminName, adminPass);
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     adminServiceSession.RemoveUser(soleOwnerName);
     deletedUserSession2 = (UserService)marketSession.GetUserService();
     deletedUserSession2.EnterSystem();
     Assert.AreEqual((int)SignUpStatus.Success, deletedUserSession2.SignUp(soleOwnerName, "no-where", soleOwnerPass, "12345678").Status);
 }
コード例 #23
0
ファイル: PPOKPrincipal.cs プロジェクト: thethorne48/PPOK
 public static byte[] HashPassword(SystemAdmin admin, string password)
 {
     using (var service = new SystemAdminService())
     {
         var salt = CreateSalt(32);
         admin.PasswordSalt = salt;
         admin.PasswordHash = GenerateSaltedHash(Encoding.ASCII.GetBytes(password), admin.PasswordSalt);
         service.Update(admin);
         return(admin.PasswordHash);
     }
 }
コード例 #24
0
 public void MarketBuilder()
 {
     MarketDB.Instance.InsertByForce();
     marketSession        = MarketYard.Instance;
     userServiceSession   = (UserService)marketSession.GetUserService();
     userAdminHarmony     = null;
     adminServiceSession  = null;
     deletedUserSession   = null;
     deletedUserSession2  = null;
     storeShoppingService = null;
     orderService         = null;
 }
コード例 #25
0
ファイル: UseCase6_1_Tests.cs プロジェクト: maorRoz/Sadna
        public void RemovePolicy1()
        {
            DoSignInToAdmin();
            adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
            AddGlobalPolicy();
            AddProductPolicy();
            MarketAnswer ans = adminServiceSession.RemovePolicy("Global", null);

            Assert.AreEqual((int)EditPolicyStatus.Success, ans.Status);
            ans = adminServiceSession.ViewPolicies();
            Assert.AreEqual(2, ans.ReportList.Length);
        }
コード例 #26
0
 public void CantLoginToDeletedUserTest()
 {
     deletedUserSession = (UserService)marketSession.GetUserService();
     deletedUserSession.EnterSystem();
     deletedUserSession.SignUp("DeleteMe", "no-where", "123", "12345678");
     ToSignIn(adminName, adminPass);
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     adminServiceSession.RemoveUser("DeleteMe");
     deletedUserSession2 = (UserService)marketSession.GetUserService();
     deletedUserSession2.EnterSystem();
     Assert.AreEqual((int)SignInStatus.NoUserFound, deletedUserSession2.SignIn("DeleteMe", "123").Status);
 }
コード例 #27
0
 public JsonResult GetAllAdmins()
 {
     using (var service = new SystemAdminService())
     {
         List <SystemAdminModel> result = new List <SystemAdminModel>();
         var admins = service.GetAll();
         foreach (var admin in admins)
         {
             result.Add(new SystemAdminModel(admin));
         }
         return(Json(result));
     }
 }
コード例 #28
0
        protected void Application_PostAuthenticateRequest(Object sender, EventArgs e)
        {
            if (FormsAuthentication.CookiesSupported == true)
            {
                if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
                {
                    try
                    {
                        //get the username
                        FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
                        JavaScriptSerializer      serializer = new JavaScriptSerializer();

                        PPOKPrincipalSerializeModel serializeModel = serializer.Deserialize <PPOKPrincipalSerializeModel>(authTicket.UserData);

                        PPOKPrincipal newUser = new PPOKPrincipal(serializeModel.Email);
                        switch (serializeModel.Type)
                        {
                        case AccountTypes.Pharmacist:
                        case AccountTypes.Admin:
                            using (var service = new PharmacistService())
                            {
                                newUser = new PPOKPrincipal(service.Get(serializeModel.Code), serializeModel.Pharmacy.Code);
                            }
                            break;

                        case AccountTypes.Patient:
                            using (var service = new PatientService())
                            {
                                newUser = new PPOKPrincipal(service.Get(serializeModel.Code));
                            }
                            break;

                        case AccountTypes.System:
                            using (var service = new SystemAdminService())
                            {
                                newUser = new PPOKPrincipal(service.Get(serializeModel.Code));
                            }
                            break;
                        }

                        HttpContext.Current.User = newUser;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        //somehting went wrong
                    }
                }
            }
        }
コード例 #29
0
 public void PurchaseHistoryOfStoreTest()
 {
     DoSignInToAdmin();
     adminServiceSession = (SystemAdminService)marketSession.GetSystemAdminService(userServiceSession);
     string[] expectedHistory =
     {
         new PurchaseHistory(userNameToView1, "INT Potion",  storeNameToView2, "Lottery",   2,  8.0, "29/12/2018").ToString(),
         new PurchaseHistory(userNameToView1, "Mana Potion", storeNameToView2, "Lottery",   3, 12.0, "29/12/2018").ToString(),
         new PurchaseHistory(userNameToView2, "STR Potion",  storeNameToView2, "Immediate", 1,  4.0, "29/12/2018").ToString(),
     };
     Assert.AreEqual((int)ViewPurchaseHistoryStatus.Success, adminServiceSession.ViewPurchaseHistoryByStore(storeNameToView2).Status);
     Assert.IsTrue(adminServiceSession.ViewPurchaseHistoryByStore(storeNameToView2).ReportList.SequenceEqual(expectedHistory));
     Assert.IsFalse(MarketException.HasErrorRaised());
 }
コード例 #30
0
 public ActionResult AddAdmin(string FirstName, string LastName, string Email, string Phone)
 {
     Phone = Regex.Replace(Phone, @"[^A-Za-z0-9]+", "");
     if (Phone.Length == 10)
     {
         Phone = "1" + Phone;
     }
     using (var emailService = new EmailService())
         using (var service = new SystemAdminService())
         {
             service.Create(new SystemAdmin(FirstName, LastName, Email, Phone, new byte[0], new byte[0]));
             emailService.SendEmail(Email, newAccountEmailSubject, newAccountEmailBody);
             return(View("Admins"));
         }
 }
コード例 #31
0
 public SysAdminValiController(SystemAdminService systemAdminService)
 {
     this._systemAdminService = systemAdminService;
 }