コード例 #1
0
        /// <summary>
        /// Method for getting and selecting a category to be updated
        /// </summary>
        /// <param name="admin">Takes a user with admin priviliges</param>
        private static void UpdateCategory(User admin)
        {
            var continueLoop = true;

            do
            {
                Console.Clear();
                AdminView.UpdateCategory();
                var categories = api.GetCategories();
                SharedView.ListCategories(categories);
                var input = SharedController.GetAndValidateInput();
                if (input.validatedInput > 0 &&
                    input.validatedInput <= categories.Count)
                {
                    UpdateCategory(admin, categories[input.validatedInput - 1]);
                }
                else
                {
                    if (input.validatedInput == 0 &&
                        input.menuInput.ToLower() == "x")
                    {
                        continueLoop = false;
                    }
                    else
                    {
                        SharedError.PrintWrongInput();
                    }
                }
            } while (continueLoop);
        }
コード例 #2
0
ファイル: Serializers.cs プロジェクト: gdlprj/duscusys
        public static Dictionary<byte, object> WriteBadgeViews(UserCursor cursor,
                                                               SharedView[] badgeViews)
        {
            //serialize badge geometry 
            // number of badges 
            // array of x's  
            // array of y's 
            // array of orientations
            // array of Ids (DB Ids of points)
            double[] Xs = new double[badgeViews.Length];
            double[] Ys = new double[badgeViews.Length];
            double[] Orientations = new double[badgeViews.Length];
            bool[] ViewTypes = new bool[badgeViews.Length];
            int[] Ids = new int[badgeViews.Count()];

            for (int i = 0; i < badgeViews.Count(); ++i)
            {
                Xs[i] = badgeViews[i].badgeGeometry.CenterX;
                Ys[i] = badgeViews[i].badgeGeometry.CenterY;
                Orientations[i] = badgeViews[i].badgeGeometry.Orientation;
                ViewTypes[i] = badgeViews[i].viewType;
                Ids[i] = badgeViews[i].ViewId;
            }
            Dictionary<byte, object> data = new Dictionary<byte, object>();
            data.Add((byte) DiscussionParamKey.NumArrayEntries, badgeViews.Length);
            data.Add((byte) DiscussionParamKey.ArrayOfX, Xs);
            data.Add((byte) DiscussionParamKey.ArrayOfY, Ys);
            data.Add((byte) DiscussionParamKey.ArrayOfOrientations, Orientations);
            data.Add((byte) DiscussionParamKey.ArrayOfIds, Ids);
            data.Add((byte) DiscussionParamKey.ArrayOfViewTypes, ViewTypes);
            data.Add((byte) DiscussionParamKey.UserCursorName, cursor.Name);
            data.Add((byte) DiscussionParamKey.UserCursorState, (int) cursor.State);

            return data;
        }
コード例 #3
0
ファイル: Serializers.cs プロジェクト: gdlprj/duscusys
        public static SharedView[] ReadBadgeViews(Dictionary<byte, object> badgeViews, out UserCursor cursor)
        {
            int count = (int) badgeViews[(byte) DiscussionParamKey.NumArrayEntries];
            double[] Xs = (double[]) badgeViews[(byte) DiscussionParamKey.ArrayOfX];
            double[] Ys = (double[]) badgeViews[(byte) DiscussionParamKey.ArrayOfY];
            double[] Orientations = (double[]) badgeViews[(byte) DiscussionParamKey.ArrayOfOrientations];
            int[] argPointIds = (int[]) badgeViews[(byte) DiscussionParamKey.ArrayOfIds];
            bool[] viewTypes = (bool[]) badgeViews[(byte) DiscussionParamKey.ArrayOfViewTypes];

            if (!badgeViews.ContainsKey((byte) DiscussionParamKey.UserCursorName))
            {
                Console.WriteLine("No key");
            }

            cursor = new UserCursor((string) badgeViews[(byte) DiscussionParamKey.UserCursorName],
                                    (CursorInputState) badgeViews[(byte) DiscussionParamKey.UserCursorState]);

            var res = new SharedView[count];
            for (int i = 0; i < count; ++i)
            {
                SharedView ap = new SharedView(i, viewTypes[i]);
                ap.badgeGeometry.CenterX = Xs[i];
                ap.badgeGeometry.CenterY = Ys[i];
                ap.badgeGeometry.Orientation = Orientations[i];
                ap.ViewId = argPointIds[i];
                res[i] = ap;
            }

            return res;
        }
コード例 #4
0
        public static SharedView[] ReadBadgeViews(Dictionary <byte, object> badgeViews, out UserCursor cursor)
        {
            int count = (int)badgeViews[(byte)DiscussionParamKey.NumArrayEntries];

            double[] Xs           = (double[])badgeViews[(byte)DiscussionParamKey.ArrayOfX];
            double[] Ys           = (double[])badgeViews[(byte)DiscussionParamKey.ArrayOfY];
            double[] Orientations = (double[])badgeViews[(byte)DiscussionParamKey.ArrayOfOrientations];
            int[]    argPointIds  = (int[])badgeViews[(byte)DiscussionParamKey.ArrayOfIds];
            bool[]   viewTypes    = (bool[])badgeViews[(byte)DiscussionParamKey.ArrayOfViewTypes];

            if (!badgeViews.ContainsKey((byte)DiscussionParamKey.UserCursorName))
            {
                Console.WriteLine("No key");
            }

            cursor = new UserCursor((string)badgeViews[(byte)DiscussionParamKey.UserCursorName],
                                    (CursorInputState)badgeViews[(byte)DiscussionParamKey.UserCursorState]);

            var res = new SharedView[count];

            for (int i = 0; i < count; ++i)
            {
                SharedView ap = new SharedView(i, viewTypes[i]);
                ap.badgeGeometry.CenterX     = Xs[i];
                ap.badgeGeometry.CenterY     = Ys[i];
                ap.badgeGeometry.Orientation = Orientations[i];
                ap.ViewId = argPointIds[i];
                res[i]    = ap;
            }

            return(res);
        }
コード例 #5
0
        /// <summary>
        /// Prints Admin menu
        /// </summary>
        /// <param name="admin">Takes a user with admin priviliges</param>
        public static void PrintAdminSelectionMenu(User admin)
        {
            SharedView.PrintWithGreenText($"\tVälkommen {admin.Name}");
            var logoutUser = false;

            do
            {
                GeneralViewHelper.WaitAndClearScreen();
                AdminView.Print();
                string menuInput      = InputHelper.AskForMenuInput();
                int    validatedInput = InputHelper.ValidateMenuInput(menuInput);
                logoutUser = SharedController.LogoutIf_X_IsPressed(admin, menuInput, validatedInput);
                if (logoutUser)
                {
                    continue;
                }
                else
                {
                    switch (validatedInput)
                    {
                    case 1:
                        AdminFunctions(admin);
                        break;

                    case 2:
                        SharedController.BuyBookMenu(admin);
                        break;
                    }
                }
            } while (!logoutUser);
        }
コード例 #6
0
        /// <summary>
        /// The first menu user sees when buy book has been pressed.
        /// </summary>
        /// <param name="user">takes a user to be connected with eventual purchase</param>
        internal static void BuyBookMenu(User user)
        {
            var continueLoop = true;

            do
            {
                Console.Clear();
                SharedView.BuyBook();
                var input = GetAndValidateInput();
                switch (input.validatedInput)
                {
                case 1:
                    BookController.BuyBySearchByBook(user);
                    break;

                case 2:
                    BookController.BuyBySearchByAuthor(user);
                    break;

                case 3:
                    BookController.BuyBySearchByCategory(user);
                    break;

                case 4:
                    BookController.BuyByChooseByCategory(user);

                    break;

                case 0:
                    continueLoop = GoBackIf_X_IsPressedOrPrintErrorMsg(input.menuInput);
                    break;
                }
            } while (continueLoop);
        }
コード例 #7
0
 public static void Show(string cancelCaption, Action cancelCallback, string status = null, float progress = -1, MaskType maskType = MaskType.None)
 {
     // Making cancelCaption optional hides the method via the overload
     if (string.IsNullOrEmpty(cancelCaption))
     {
         cancelCaption = "Cancel";
     }
     obj.InvokeOnMainThread(() => SharedView.ShowProgressWorker(progress, status, maskType, cancelCaption: cancelCaption, cancelCallback: cancelCallback));
 }
コード例 #8
0
        /// <summary>
        /// Find all categories in the database
        /// </summary>
        /// <returns>returns a list of all categories in database</returns>
        private static List <BookCategory> FindAndListCategories()
        {
            List <BookCategory> categories = new List <BookCategory>();

            categories = api.GetCategories();
            Console.Clear();
            if (categories.Count > 0)
            {
                SharedView.ListCategories(categories);
            }

            return(categories);
        }
コード例 #9
0
ファイル: TestHelper.cs プロジェクト: gdlprj/duscusys
 //public
 private static SharedView[] CreateBadges(int numBadges)
 {
     SharedView[] result = new SharedView[numBadges];
     for (int i = 0; i < numBadges; ++i)
     {
         var argPointView = new SharedView(i, true);
         argPointView.badgeGeometry.CenterX = rnd.NextDouble();
         argPointView.badgeGeometry.CenterY = rnd.NextDouble();
         argPointView.badgeGeometry.Orientation = 360.0*rnd.NextDouble();
         result[i] = argPointView;
     }
     return result;
 }
コード例 #10
0
 //public
 private static SharedView[] CreateBadges(int numBadges)
 {
     SharedView[] result = new SharedView[numBadges];
     for (int i = 0; i < numBadges; ++i)
     {
         var argPointView = new SharedView(i, true);
         argPointView.badgeGeometry.CenterX     = rnd.NextDouble();
         argPointView.badgeGeometry.CenterY     = rnd.NextDouble();
         argPointView.badgeGeometry.Orientation = 360.0 * rnd.NextDouble();
         result[i] = argPointView;
     }
     return(result);
 }
コード例 #11
0
        public static SharedView[] SVUnion(SharedView[] a1, SharedView[] a2)
        {
            SharedView[] res = new SharedView[a1.Length + a2.Length];
            for (int i = 0; i < a1.Length; i++)
            {
                res[i] = a1[i];
            }
            for (int i = 0; i < a2.Length; i++)
            {
                res[a1.Length + i] = a2[i];
            }

            return(res);
        }
コード例 #12
0
        /// <summary>
        /// Method for searching with keyword and getting a list of matching categories
        /// </summary>
        /// <returns>returns a list of matching categories for the search keyword</returns>
        private static List <BookCategory> SearchAndListCategories()
        {
            List <BookCategory> categories = new List <BookCategory>();

            BookView.SearchForCategory();
            var input = SharedController.GetSearchInput();

            categories = api.GetCategories(input);
            Console.Clear();
            if (categories.Count > 0)
            {
                SharedView.ListCategories(categories);
            }

            return(categories);
        }
コード例 #13
0
        /// <summary>
        /// Delete category (if empty)
        /// </summary>
        /// <param name="admin">Takes a user with admin priviliges</param>
        private static void DeleteCategory(User admin)
        {
            var continueLoop = true;

            do
            {
                Console.Clear();
                AdminView.DeleteCategory();
                var categories = api.GetCategories();
                SharedView.ListCategories(categories);
                var input = SharedController.GetAndValidateInput();
                if (input.validatedInput > 0 &&
                    input.validatedInput <= categories.Count)
                {
                    if (api.DeleteCategory(
                            admin.Id,
                            categories[input.validatedInput - 1].Id))
                    {
                        SharedError.Success();
                    }
                    else
                    {
                        var books = api.GetBooksInCategory(categories[input.validatedInput - 1].Id);
                        SharedError.BooksStillInCategory(books.Count);
                    }
                }
                else
                {
                    if (input.validatedInput == 0 &&
                        input.menuInput.ToLower() == "x")
                    {
                        continueLoop = false;
                    }
                    else
                    {
                        SharedError.PrintWrongInput();
                    }
                }
            } while (continueLoop);
        }
コード例 #14
0
ファイル: QueryHelper.cs プロジェクト: nhvlinter/funny-movies
        public static List <SharedView> GetMovies(string userId)
        {
            var rs            = new List <SharedView>();
            var sqlParameters = userId != null ? new List <SqlParameter>()
            {
                new SqlParameter("@UserId", SqlDbType.BigInt)
                {
                    Value = userId
                }
            } : null;

            using (var conn = OpenSqlConnection())
            {
                using (var command = GenerateCommand("sp_Movie_Get", sqlParameters, conn))
                {
                    var reader = command.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            var sharedView = new SharedView()
                            {
                                MovieId  = (long)reader["MovieId"],
                                Url      = reader["Url"].ToString(),
                                SharedBy = reader["SharedBy"].ToString(),
                                UpVote   = (int)reader["UpVote"],
                                DownVote = (int)reader["DownVote"],
                                UserVote = reader["UserVote"] == DBNull.Value ? null : reader["UserVote"].ToString()
                            };
                            rs.Add(sharedView);
                        }
                    }
                    CloseSqlConnection(conn);
                }
            }
            return(rs);
        }
コード例 #15
0
ファイル: Serializers.cs プロジェクト: gdlprj/duscusys
        public static SharedView[] SVUnion(SharedView[] a1, SharedView[] a2)
        {
            SharedView[] res = new SharedView[a1.Length + a2.Length];
            for (int i = 0; i < a1.Length; i++)
                res[i] = a1[i];
            for (int i = 0; i < a2.Length; i++)
                res[a1.Length + i] = a2[i];

            return res;
        }
コード例 #16
0
 public static void DismissWithError(string text, float delay)
 {
     SharedView.DismissWithStatus(text, true, delay);
 }
コード例 #17
0
 public static void ShowToast(string status, bool showToastCentered = true, double timeoutMs = 1000)
 {
     obj.InvokeOnMainThread(() => SharedView.ShowProgressWorker(status: status, textOnly: true, showToastCentered: showToastCentered, timeoutMs: timeoutMs));
 }
コード例 #18
0
 public static void Show(string status = null, float progress = -1, MaskType maskType = MaskType.None)
 {
     obj.InvokeOnMainThread(() => SharedView.ShowProgressWorker(progress, status, maskType));
 }
コード例 #19
0
 public static void ShowImage(UIImage image, string status, double timeoutMs = 1000)
 {
     obj.InvokeOnMainThread(() => SharedView.ShowImageWorker(image, status, TimeSpan.FromMilliseconds(timeoutMs)));
 }
コード例 #20
0
 public static void Dismiss()
 {
     SharedView.DismissInternal();
 }
コード例 #21
0
 public static void SetStatus(string status)
 {
     obj.InvokeOnMainThread(() => SharedView.SetStatusWorker(status));
 }
コード例 #22
0
 public static void DismissWithSuccess(string text, float delay)
 {
     SharedView.DismissWithStatus(text, false, delay);
 }
コード例 #23
0
 public static void Dismiss()
 {
     obj.InvokeOnMainThread(() => SharedView.DismissWorker());
 }
コード例 #24
0
 public static void Show(string status, SVProgressHUDMask mask)
 {
     SharedView.ShowInternal(status, mask);
 }