コード例 #1
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        //true on succsess exception if somthing went wrong
        public bool disapproveOwnershipRequest(int requestId)
        {
            OwnershipRequest ownershipRequest = ConnectionStubTemp.GetOwnershipRequest(requestId);

            ownershipRequest.approveOrDisapprovedOwnership(-1, this);
            return(true);
        }
コード例 #2
0
        public void makeOwner()
        {
            Roles roles = ConnectionStubTemp.getMember(initiate).getStoreManagerRoles(store.id);

            ConnectionStubTemp.getMember(initiate).makeStoreOwner(candidate.username, roles, store.id);
            ConnectionStubTemp.deleteOwnershipRequest(this);
        }
コード例 #3
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public bool makeStoreOwner(string username, Roles role, int StoreID)
        {
            Store        store        = GetStore(StoreID);
            StoreManager myStoreRoles = getStoreManagerOb(store);
            Member       candidate    = ConnectionStubTemp.getMember(username);

            if (candidate.isStoresManagers())
            {
                try
                {
                    candidate.GetStore(StoreID);
                }
                catch (WorkShopDbException dbExc)
                {
                    throw dbExc;
                }
                catch (Exception ex)
                {
                    myStoreRoles.CreateNewManager(candidate, role);
                }
            }
            else
            {
                myStoreRoles.CreateNewManager(candidate, role);
            }
            StoreManager candidateStoreManager = candidate.getStoreManagerOb(store);

            candidateStoreManager.SetStoreOwnerTrue();
            ConnectionStubTemp.Update(ConnectionStubTemp.getMember(username));//shira
            return(true);
        }
コード例 #4
0
ファイル: Users.cs プロジェクト: hadasat/Web-Store-
        //public void registerNewUser(string username, string password)
        //{
        //    throw new Exception("can't register a new user without country or password");
        //    //ConnectionStubTemp.registerNewUser(username, password, DateTime.Today.AddYears(1), "all");
        //}

        public void registerNewUser(string username, string password, DateTime birthdate, string country)
        {
            if (country == null || country == "" || birthdate == DateTime.MaxValue)
            {
                throw new Exception("bad country of birth date - can't register user");
            }
            ConnectionStubTemp.registerNewUser(username, password, birthdate, country);
        }
コード例 #5
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public bool addManager(string username, Roles role, int StoreID)
        {
            Store        store        = GetStore(StoreID);
            StoreManager myStoreRoles = getStoreManagerOb(store);
            bool         ret          = myStoreRoles.CreateNewManager(ConnectionStubTemp.getMember(username), role);

            ConnectionStubTemp.Update(ConnectionStubTemp.getMember(username));
            return(ret);
        }
コード例 #6
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        /************************/

        /*** This function is the function that create Store Owner - STORE USE THIS IN THE CONSTRUCTOR ***/
        public void addStore(Store store)
        {
            Roles        storeOwner        = new Roles(true, true, true, true, true, true, true, true, true);
            StoreManager storeOwnerManager = new StoreManager(store, storeOwner);

            storeOwnerManager.SetStoreOwnerTrue();
            storeManaging.AddFirst(storeOwnerManager);
            ConnectionStubTemp.Update(this);
            Logger.Log("event", logLevel.INFO, "user: "******"created succesfully new store: " + store.id);
        }
コード例 #7
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        //TODO : is there  need for remove manager option?
        public bool removeManager(string username, Store store)
        {
            Logger.Log("event", logLevel.INFO, "user: "******"try to remove user: " + username);
            StoreManager myStoreRoles   = getStoreManagerOb(store);
            Member       memberToRemove = ConnectionStubTemp.getMember(username);
            bool         res            = myStoreRoles.removeManager(memberToRemove.getStoreManagerOb(store));

            memberToRemove.RemoveStoreFromMe(memberToRemove.getStoreManagerOb(store));
            ConnectionStubTemp.Update(ConnectionStubTemp.getMember(username));//shira
            return(res);
        }
コード例 #8
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public static void sendMessageToAdmin(string msg)
        {
            List <Member> members = ConnectionStubTemp.GetMembers();

            foreach (Member member in members)
            {
                if (member is SystemAdmin)
                {
                    member.addMessage(msg);
                }
            }
        }
コード例 #9
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public static void sendMessageToAllOwners(int storeId, string msg)
        {
            List <Member> members = ConnectionStubTemp.GetMembers();

            foreach (Member currMember in members)
            {
                if (currMember.isStoresOwner(storeId))
                {
                    currMember.addMessage(msg);
                }
            }
        }
コード例 #10
0
        public bool RemoveUser(string userName)
        {
            Member member;

            try
            {
                member = ConnectionStubTemp.getMember(userName);
            }
            catch (WorkShopDbException dbExc)
            {
                throw dbExc;
            }
            catch (Exception ex)
            {
                Logger.Log("event", logLevel.INFO, "Admin fail removed user: "******" user doen't exist");
                throw new Exception(ex.ToString());
            }
            if (member.isStoresManagers())
            {
                int          count = member.storeManaging.Count - 1;
                StoreManager st    = member.storeManaging.ElementAt(count);
                try
                {
                    for (; count > -1; count--, st = member.storeManaging.ElementAt(count))
                    {
                        if (ConnectionStubTemp.getAllOwnersCount(st.store) == 1 /*st.GetFather() == null*/)///change to super father
                        {
                            Store store = st.GetStore();
                            WorkShop.closeStore(store.id, member);
                        }
                        else
                        {
                            StoreManager father = st.GetFather();
                            father.removeManager(st);
                        }
                    }
                } catch (Exception ex)
                {
                }
                ConnectionStubTemp.removeMember(member);
                Logger.Log("event", logLevel.INFO, "Admin succesfully removed user: "******"event", logLevel.INFO, "Admin succesfully removed user: " + userName);
                ConnectionStubTemp.removeMember(member);
                return(ConnectionStubTemp.removeUser(userName, this));
            }
        }
コード例 #11
0
 public void sendRequestsToOwners(Store store, int creatorId, string candidateName, int requestId)
 {
     lock (OwnersLock)
     {
         foreach (Decision d in owners)
         {
             Member currMember = ConnectionStubTemp.getMember(d.username);
             if (currMember.id != creatorId && currMember.username != candidateName)
             {
                 currMember.addMessage("Do you agree adding " + candidateName + " as a co - owner to the store " + store.name + "?", Notification.NotificationType.CREATE_OWNER, requestId);
             }
         }
     }
 }
コード例 #12
0
ファイル: Users.cs プロジェクト: hadasat/Web-Store-
        /*** SERVICE LAYER FUNCTIONS***/

        public Member loginMember(string username, string password)
        {
            //TODO:: load shopping basket


            int ID = ConnectionStubTemp.identifyUser(username, password);

            if (ID == -1)
            {
                //don't log password!
                Logger.Log("event", logLevel.INFO, "user: "******"tried to log in and failed");
                throw new Exception("incorrect username or password");
            }
            Logger.Log("event", logLevel.INFO, "user: "******"log in and succses");
            return(ConnectionStubTemp.getMember(ID));
        }
コード例 #13
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public static void sendMessageToAllManagers(int storeId, string msg)
        {
            List <Member> members = ConnectionStubTemp.GetMembers();

            foreach (Member member in members)
            {
                LinkedList <StoreManager> managers = member.storeManaging;
                foreach (StoreManager manager in managers)
                {
                    if (manager.GetStore().id == storeId)
                    {
                        member.addMessage(msg);
                    }
                }
            }
        }
コード例 #14
0
 // 1 opproved -1 disapproved
 public void approveOrDisapprovedOwnership(int decition, Member member)
 {
     lock (OwnersLock)
     {
         foreach (Decision d in owners)
         {
             if (d.username == member.username)
             {
                 d.setDecition(decition);
                 break;
             }
         }
     }
     lock (CounterLock)
     {
         counter--;
     }
     if (isFullfielld())
     {
         lock (doneLock)
         {
             if (!done && checkIfApproved())
             {
                 done = true;
                 makeOwner();
             }
             else
             {
                 //needs to decide if somthing happens in case of
                 //unapproval
                 lock (OwnersLock)
                 {
                     ConnectionStubTemp.UpdateOwnershipRequest(this);
                 }
             }
         }
     }
 }
コード例 #15
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        /// <summary>
        ///
        /// </summary>
        /// <param name="username"></param>
        /// <param name="role"></param>
        /// <param name="StoreID"></param>
        /// <returns> the request nunmber if nessecary, else -1</returns>
        public int addStoreOwner(string username, Roles role, int StoreID)
        {
            Store store          = GetStore(StoreID);
            int   numberOfOwners = ConnectionStubTemp.getNumOfOwners(store);
            int   requestId;

            if (numberOfOwners > 1)
            {
                requestId = ConnectionStubTemp.createOwnershipRequest(store, this, ConnectionStubTemp.getMember(username));
                ConnectionStubTemp.Update(ConnectionStubTemp.getMember(username));//shira
                return(requestId);
            }
            else if (numberOfOwners <= 0)
            {
                throw new Exception("You dont own this store! should not happen!!");
            }
            requestId = ConnectionStubTemp.createOwnershipRequest(store, this, ConnectionStubTemp.getMember(username));
            if (ConnectionStubTemp.GetOwnershipRequest(requestId) != null)
            {
                ConnectionStubTemp.deleteOwnershipRequest(ConnectionStubTemp.GetOwnershipRequest(requestId));
            }
            ConnectionStubTemp.Update(ConnectionStubTemp.getMember(username));//shira
            return(-1);
        }
コード例 #16
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
        public bool addManager(string username, Roles role, Store store)
        {
            StoreManager myStoreRoles = getStoreManagerOb(store);

            return(myStoreRoles.CreateNewManager(ConnectionStubTemp.getMember(username), role));
        }
コード例 #17
0
ファイル: Member.cs プロジェクト: hadasat/Web-Store-
 /*** SERVICE LAYER FUNCTIONS***/
 public void logOut()
 {
     Logger.Log("event", logLevel.INFO, "user: "******"log out and succses");
     ConnectionStubTemp.logout(username);
 }