예제 #1
0
 public FrmUserDetail()
 {
     InitializeComponent();
     user = new Objects.User();
     binding_data();
     form_type = "new";
 }
예제 #2
0
        public static Objects.User logInUser(string userName, string userPass)
        {
            using (var db = new edShortenerModel())
            {
                var cryptedPass = cryptDecrypt.cryptPass(userPass);
                var queryResult = from User in db.Users
                                  where User.userName == userName && User.userPass == cryptedPass
                                  select User;

                if (queryResult.Count() == 1)
                {
                    Objects.User user       = new Objects.User();
                    var          userResult = queryResult.FirstOrDefault();
                    user.id                   = userResult.idUser;
                    user.name                 = userResult.userName;
                    user.userUrlList          = new UserUrlList();
                    user.userUrlList.urlLists = new List <TableShortedUrl>();
                    userResult.ShortedUrls.ToList().ForEach(url =>
                    {
                        user.userUrlList.urlLists.Add(new TableShortedUrl
                        {
                            id               = url.idShortedUrl,
                            created          = url.created,
                            longUrl          = url.longUrl,
                            shortedUrl       = url.shortedUrl1,
                            pageStatus       = url.pageStatus,
                            lastStatusChange = url.lastStatusChange,
                            clicks           = url.Clicks.Where(click => click.created >= DateTime.Now.AddYears(-100)).Count()
                        });
                    });
                    return(user);
                }
            }
            return(null);
        }
예제 #3
0
 public FrmUserDetail(Objects.User input_user)
 {
     InitializeComponent();
     user = input_user;
     binding_data();
     form_type = "edit";
 }
예제 #4
0
        public static int updateProfile(Objects.User user, bool changePass)
        {
            using (var db = new edShortenerModel())
            {
                try
                {
                    var original = db.Users.Find(user.id);
                    original.dateB    = user.dateB;
                    original.gender   = user.gender;
                    original.imgScr   = user.imgScr == null ? null : cryptDecrypt.cryptPass(user.imgScr);
                    original.mail     = user.mail;
                    original.phone    = user.phone;
                    original.realName = user.realName;
                    if (changePass)
                    {
                        string cryptedPass = cryptDecrypt.cryptPass(user.newPass1);
                        original.userPass = cryptedPass;
                    }

                    return(db.SaveChanges());
                }
                catch (Exception e)
                {
                    return(0);
                }
            }
        }
예제 #5
0
파일: Util.cs 프로젝트: vendstor/vendstor
            /// <summary>
            /// Save User properties to settings
            /// </summary>
            /// <param name="user"> User Object</param>
            ///
            public static void SynchronizeUser(string userId = null, bool fetch = true)
            {
                Objects.User user = new Objects.User
                {
                    Id = userId ?? Properties.Settings.Default.UserId
                };
                if (fetch)
                {
                    QueryController.User.UpdateSettings(userId);

                    if (Validation.IsTokenValid(user.Id))
                    {
                        var response = QueryController.User.Get(user);
                        // Check response StatusCode
                        if (response.StatusCode == 200)
                        {
                            user = (Objects.User)response.Data;
                            Properties.Settings.Default.UserId = user.Id;
                        }
                    }
                }
                var userEncoded = Object.ToString(user);

                // Update Store Infos
                Properties.Settings.Default.User = userEncoded;
                Properties.Settings.Default.Save();
            }
예제 #6
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        /// Updates user's imageBlobId
        /// </summary>
        public Response UpdateImage(Objects.User user, Objects.File file)
        {
            Response response = new Response();

            try
            {
                Database.Connection.Open();

                string       Query   = " UPDATE Users SET ImageBlobId=@ImageBlobId WHERE UserId=@UserId ";
                MySqlCommand Command = new MySqlCommand(Query, Database.Connection);
                Command.Parameters.AddWithValue("UserId", user.Id);
                Command.Parameters.AddWithValue("ImageBlobId", file.BlobId);
                Command.ExecuteNonQuery();

                Database.Connection.Close();

                // Updated Successfully
                response.StatusCode = 200;
                response.Data       = user;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "Updating Image");
                // Status Code
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #7
0
 void UserList_Control_UCMain_Edit_Clicked(object sender, EventArgs e)
 {
     if (bandedGridView1.FocusedRowHandle < 0)
     {
         return;
     }
     try
     {
         Objects.User user = (Objects.User)bandedGridView1.GetRow(bandedGridView1.FocusedRowHandle);
         if (user == null)
         {
             MessageBox.Show("Chưa chọn nhân viên", "Thông báo lỗi");
             return;
         }
         using (var uow = new UnitOfWork())
         {
             //Object.NhanVien getRecords = new XPCollection<Object.NhanVien>(uow, CriteriaOperator.Parse("Oid = ?", employee_id)).FirstOrDefault();
             Objects.User getRecords = uow.GetObjectByKey <Objects.User>(user.Oid);
             if (getRecords == null)
             {
                 return;
             }
             FrmUserDetail f = new FrmUserDetail(getRecords);
             f.ShowDialog();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Đã có lỗi không mong muốn sảy ra/n" + ex.ToString(), "Thông báo lỗi");
     }
 }
예제 #8
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        ///  Authentificate User
        /// </summary>
        /// <param name="pin"> User PIN</param>
        /// <returns></returns>
        public Response PinLogin(Objects.User user)
        {
            //Props
            int      statusCode = 200;
            Response response   = new Response();

            try
            {
                //Open Connection
                Database.Connection.Open();

                //Query
                string loginQuery = "SELECT UserId FROM Users WHERE PinCode=@PinCode";

                //Execute Query With Connection  => DataReader
                MySqlCommand Command = new MySqlCommand(loginQuery, Database.Connection);

                //Parameters For Security Purpose
                Command.Parameters.AddWithValue("PinCode", user.PinCode);

                MySqlDataReader DataReader = Command.ExecuteReader();
                //Read Data
                while (DataReader.Read())
                {
                    user.Id = DataReader["UserId"].ToString();
                }

                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }
                //Close Connection
                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.Data       = user;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "PIN Login");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #9
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        ///  Authentificate User
        /// </summary>
        /// <param name="email"> User Email</param>
        /// <param name="password"> User Password </param>
        /// <returns></returns>
        public Response Login(Objects.User user)
        {
            //Props
            int      statusCode = 200;
            Response response   = new Response();

            try
            {
                /* Connection & Query */

                Database.Connection.Open();

                string loginQuery = "SELECT UserId FROM Users WHERE Email=@Email AND Password=@Password";

                //Execute Query With Connection  => DataReader
                MySqlCommand Command = new MySqlCommand(loginQuery, Database.Connection);
                Command.Parameters.AddWithValue("Email", user.Email);
                Command.Parameters.AddWithValue("Password", user.Password);

                MySqlDataReader DataReader = Command.ExecuteReader();

                while (DataReader.Read())
                {
                    user.Id = DataReader["UserId"].ToString();
                }

                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                Database.Connection.Close();

                /* Response */
                response.StatusCode = statusCode;
                response.Data       = user;
            }
            catch (MySqlException e)
            {
                /* Errors */
                Logger.QueryError(e, "User", "Login");
                response.StatusCode = 500;
            }

            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #10
0
 internal static Objects.User getFullUserByGuid(Guid guid)
 {
     using (var db = new edShortenerModel())
     {
         var          original = db.Users.Find(guid);
         Objects.User user     = new Objects.User();
         user.dateB    = original.dateB;
         user.gender   = original.gender;
         user.id       = original.idUser;
         user.imgScr   = original.imgScr;
         user.mail     = original.mail;
         user.name     = original.userName;
         user.phone    = original.phone;
         user.realName = original.realName;
         return(user);
     }
 }
예제 #11
0
        internal static bool verifyOldPass(Objects.User user)
        {
            using (var db = new edShortenerModel())
            {
                var queryResult = from User in db.Users
                                  where User.idUser == user.id
                                  select User;


                if (queryResult.Count() == 1)
                {
                    var userResult = queryResult.FirstOrDefault();
                    return(userResult.userPass == cryptDecrypt.cryptPass(user.oldPasss));
                }

                return(false);
            }
        }
예제 #12
0
        private void ULogin()
        {
            Objects.User obj = new Objects.User();
            obj.Email    = txtEmail.Text.ToString();
            obj.Password = txtPassword.Password.ToString();
            int vcheck = new BLL.User().ULogin(obj);

            if (vcheck > 0)
            {
                ControlPanel Cp = new ControlPanel();
                Cp.Show();
                Close();
            }
            else
            {
                MessageBox.Show("Please enter valid email or password");
            }
        }
예제 #13
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        ///  Delete User
        /// </summary>
        public Response Delete(Objects.User user)
        {
            //Props
            int statusCode = 204;

            user.Id = user.Id ?? Properties.Settings.Default.UserId;
            Response response = new Response();

            try
            {
                //Open Connection
                Database.Connection.Open();

                //Query
                string Query = "DELETE FROM Users WHERE UserId=@UserId ";

                //Execute Query With Connection  => DataReader
                MySqlCommand Command = new MySqlCommand(Query, Database.Connection);
                Command.Parameters.AddWithValue("UserId", user.Id);

                //Execute Command
                Command.ExecuteNonQuery();

                //Close Connection
                Database.Connection.Close();

                //[HTTP Status Code] OK : Successfully Deleted : Returning No Content
                statusCode          = 204;
                response.StatusCode = statusCode;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "Getting User");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #14
0
        private void URegistration()
        {
            Objects.User obj = new Objects.User();
            obj.UserID    = new BLL.User().GetMaxID();
            obj.FirstName = textBoxFirstName.Text;
            obj.LastName  = textBoxLastName.Text;
            obj.Email     = textBoxEmail.Text;
            obj.Password  = passwordBox1.Password;
            obj.Address   = textBoxAddress.Text;
            obj.Country   = textBoxCountry.Text;

            int vcheck = new BLL.User().URegistration(obj);

            if (vcheck == 1)
            {
                errormessage.Text = "You have Registered successfully.";
                Reset();
            }
        }
예제 #15
0
        private void RegistrationButton_Click(object sender, EventArgs e)
        {
            TNTServicesClient client = new TNTServicesClient("BasicHttpBinding_ITNTServicesContracts");
            User user = new Objects.User()
            {
                Address      = StreetAddressTextBox.Text,
                City         = CityTextBox.Text,
                EmailAddress = EmailAddressTextBox.Text,
                Name         = NameTextBox.Text,
                PhoneNumber  = PhoneNumberTextBox.Text,
                State        = StateTextBox.Text,
                Zip          = ZipTextBox.Text
            };

            Objects.License license = client.RequestLicense(user, new Guid(ApplicationIDComboBox.SelectedItem.ToString()));

            Clipboard.SetText(license.Key);

            MessageBox.Show(this, string.Format("{0}\n\nAlso copied to clipboard.", license.Key), "License Key");
        }
예제 #16
0
파일: Util.cs 프로젝트: vendstor/vendstor
            public static bool IsUserAllowed(Objects.User user, PermissionAlertType alertType = PermissionAlertType.None, Form form = null, RequiredPermission reqPermission = RequiredPermission.Admin)
            {
                if (user == null)
                {
                    return(false);
                }

                bool isAllowed = true;

                switch (reqPermission)
                {
                case RequiredPermission.Admin:
                    if (user.Role.ToLower() != "admin")
                    {
                        isAllowed = false;
                    }
                    break;
                }

                //Alert User
                if (!isAllowed)
                {
                    switch (alertType)
                    {
                    case PermissionAlertType.Alert:
                        Alert.Show("Limited Permission", "You must be an Admin to perform this action.", Alert.AlertType.Warning);
                        break;

                    case PermissionAlertType.Message:
                        MessageParser.Permission(caller: form);
                        break;

                    case PermissionAlertType.None:
                        break;
                    }
                }

                return(isAllowed);
            }
예제 #17
0
 bool do_login()
 {
     using (var uow = new UnitOfWork())
     {
         Objects.User getSingleRec = new XPCollection <Objects.User>(uow, CriteriaOperator.Parse("username = ? and password = ?", TextUsername.Text, TextPassword.Text)).FirstOrDefault();
         if (getSingleRec != null)
         {
             Global.User = getSingleRec;
             return(true);
         }
         else
         {
             if (TextUsername.Text == "admin" && TextPassword.Text == "admin")
             {
                 Objects.User supper_admin = new Objects.User();
                 supper_admin.username = "******";
                 Global.User           = supper_admin;
                 return(true);
             }
         }
     }
     return(false);
 }
예제 #18
0
 public int URegistration(Objects.User obj)
 {
     return(new DAL.User().URegistration(obj));
 }
예제 #19
0
        public HomeModule()
        {
            if (Context != null)
            {
                this.RequiresAuthentication();
            }


            Get["test2"] = parameters =>
            {
                try
                {
                    this.RequiresClaims(new[] { "Admin" });

                    string s = "a";


                    return(s);
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
            };

            Get["/"] = parameters =>
            {
                //var currentUser = "******";
                //try
                //{
                // currentUser = Context.CurrentUser.UserName;

                //}
                //catch(Exception e)
                //{

                //}
                var currentUser = Context.CurrentUser != null ? Context.CurrentUser.UserName : string.Empty;
                var guid        = UserFunctions.getGuidByName(currentUser);
                if (guid != null)
                {
                    Objects.User u = new Objects.User();
                    u.userUrlList = TableFunctions.getUserList("all", guid);
                    return(View["Index", u]);
                }
                else
                {
                    return("error");
                }
            };

            #region table index

            Get["/table/{date}"] = parameters =>
            {
                var currentUser = Context.CurrentUser.UserName;
                var guid        = UserFunctions.getGuidByName(currentUser);
                if (guid != null)
                {
                    UserUrlList list = TableFunctions.getUserList(parameters.date, guid);
                    return(View["_TableUrl", list]);
                }
                else
                {
                    return("error");
                }
            };


            Get["/tableDetails/{urlObjectId}"] = parameters =>
            {
                int       urlObjId = parameters.urlObjectId;
                UrlObject urlObj   = TableFunctions.getUrlTableDetails(urlObjId);

                if (urlObj != null)
                {
                    return(View["_ShortedUrlInfo", urlObj]);
                }
                else
                {
                    return("error");
                }
            };

            #endregion

            #region user

            #region logIN
            Get["/login"] = parameter =>
            {
                dynamic model = new ExpandoObject();
                model.Errored = Request.Query.error.HasValue;
                return(View["logIn", model]);
            };

            Post["/login"] = parameter =>
            {
                string name     = Request.Form["userName"];
                string pass     = Request.Form["userPass"];
                string remember = Request.Form["rememberMe"];

                Objects.User user = UserFunctions.logInUser(name, pass);

                if (user != null)
                {
                    DateTime?expiry = null;
                    if (!string.IsNullOrEmpty(remember))
                    {
                        expiry = DateTime.Now.AddDays(7);
                    }

                    return(this.LoginAndRedirect(user.id, expiry));
                }
                else
                {
                    return(Context.GetRedirect("~/login?error=true&username="******"/logout"] = parameter =>
            {
                return(this.LoginAndRedirect(UserFunctions.getDummyCurrentUser().guid));
            };

            #endregion

            #region register

            Get["/register"] = parameter =>
            {
                dynamic model = new ExpandoObject();
                model.Errored = Request.Query.error.HasValue;
                return(View["register", model]);
            };

            Post["/register"] = parameter =>
            {
                string name     = Request.Form["userName"];
                string pass     = Request.Form["userPass"];
                string pass2    = Request.Form["userPass"];
                string remember = Request.Form["rememberMe"];

                Objects.User user = UserFunctions.registerUser(name, pass, pass2);

                if (user != null)
                {
                    DateTime?expiry = null;
                    if (!string.IsNullOrEmpty(remember))
                    {
                        expiry = DateTime.Now.AddDays(7);
                    }

                    return(this.LoginAndRedirect(user.id, expiry));
                }
                else
                {
                    return(Context.GetRedirect("~/register?error=true&username="******"profile"] = parameters =>
            {
                var currentUser = Context.CurrentUser.UserName;
                var guid        = UserFunctions.getGuidByName(currentUser);
                if (guid != null)
                {
                    Objects.User u = UserFunctions.getFullUserByGuid(guid);
                    u.userUrlList = TableFunctions.getUserList("all", guid);
                    return(View["profile", u]);
                }
                else
                {
                    return("error");
                }
            };

            Post["/profile"] = parameter =>
            {
                Objects.User user        = this.Bind();
                var          changePass  = Request.Form["changePass"];
                var          currentUser = Context.CurrentUser.UserName;
                var          guid        = UserFunctions.getGuidByName(currentUser);
                user.id   = guid;
                user.name = currentUser;

                if (changePass == "1")
                {
                    if (!string.IsNullOrEmpty(user.newPass1) && user.newPass1 == user.newPass2)
                    {
                        if (UserFunctions.verifyOldPass(user))
                        {
                            if (UserFunctions.updateProfile(user, true) > 0)
                            {
                                return(View["profile", user]);
                            }
                            else
                            {
                                user.error = "Error Ocurred while updating profile";
                                return(View["profile", user]);
                            }
                        }
                        else
                        {
                            user.error = "Old password was incorrect";
                            return(View["profile", user]);
                        }
                    }
                    else
                    {
                        user.error = "Password does not match";
                        return(View["profile", user]);
                    }
                }
                else
                {
                    if (UserFunctions.updateProfile(user, false) > 0)
                    {
                        return(View["profile", user]);
                    }
                    else
                    {
                        user.error = "Error Ocurred while updating profile";
                        return(View["profile", user]);
                    }
                }
            };

            #endregion
            #endregion

            #region short
            Get["/goTo/{toShort}"] = parameters =>
            {
                string    toShort   = parameters.toShort;
                UrlObject urlObject = ShortFunctions.getUrlObjectIdByShorted(toShort);

                if (urlObject != null && urlObject.status.ToString() == "200")
                {
                    if (ShortFunctions.insertNewClick(urlObject.idShortedUrl) > 0)
                    {
                        return(Response.AsRedirect(urlObject.longUrl));
                    }
                    return(View["error", new errorObj {
                                    errorMsg = "No se ha podido acceder a la url " + urlObject.shortedUrl + "error desconocdio"
                                }]);
                }
                else
                {
                    return(View["error", new errorObj {
                                    errorMsg = "Url Caida desde " + urlObject.lastStatusCHanged
                                }]);
                }
            };


            Post["/addUrl"] = parameters =>
            {
                string urlToAdd    = Request.Form["urlToShort"];
                var    currentUser = Context.CurrentUser.UserName;
                if (!string.IsNullOrEmpty(currentUser))
                {
                    var        guid   = UserFunctions.getGuidByName(currentUser);
                    ShortedUrl newUrl = ShortFunctions.urlAlreadyShorted(urlToAdd, guid);
                    if (newUrl == null)
                    {
                        int result = ShortFunctions.addNewUrl(urlToAdd, guid);
                        if (result != 0)
                        {
                            return(Response.AsRedirect("/"));
                        }
                        else
                        {
                            return(View["error", new errorObj {
                                            errorMsg = "No se ha podido crear la url " + urlToAdd
                                        }]);
                        }
                    }

                    return(Response.AsRedirect("/tableDetails/" + newUrl.idShortedUrl));
                }
                return("error");
            };
            #endregion

            #region csv

            Get["/csv"] = parameters =>
            {
                return(View["csv", null]);
            };

            Post["/csv"] = parameters =>
            {
                string   urlsToAdd   = Request.Form["urlList"];
                string[] urlsArr     = urlsToAdd.Split(',');
                var      currentUser = Context.CurrentUser.UserName;
                var      guid        = UserFunctions.getGuidByName(currentUser);
                if (guid != null)
                {
                    csvResponse result = ShortFunctions.addArrUrls(urlsArr, guid);
                    return(View["csv", result]);
                }

                return(0);
            };

            #endregion


            Get["/details/{url}"] = parameters =>
            {
                return(View["register"]);
            };
        }
예제 #20
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        ///  Update User
        /// </summary>
        /// <returns></returns>
        public Response Update(Objects.User user)
        {
            //Props
            int      statusCode = 200;
            Response response   = new Response();
            var      color      = ColorUtil.ToHEXColor(user.Color);
            var      isOnline   = Func.ToString(user.IsOnline);
            var      isVerified = Func.ToString(user.IsVerified);

            try
            {
                //Open Connection
                Database.Connection.Open();

                //Query
                string query = "UPDATE Users SET Username=@Username, Password=@Password, FirstName=@FirstName, LastName=@LastName, " +
                               "Email=@Email, PinCode=@PinCode, Role=@Role, Locale=@Locale, Color=@Color, IsOnline=@IsOnline, " +
                               "IsVerified=@IsVerified " +
                               " WHERE UserId=@UserId";

                //Execute Query With MySqlConnection
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);

                //Parameters For Security Purpose
                Command.Parameters.AddWithValue("UserId", user.Id);
                Command.Parameters.AddWithValue("Username", user.Username);
                Command.Parameters.AddWithValue("Password", user.Password);
                Command.Parameters.AddWithValue("FirstName", user.FirstName);
                Command.Parameters.AddWithValue("LastName", user.LastName);
                Command.Parameters.AddWithValue("Email", user.Email);
                Command.Parameters.AddWithValue("PinCode", user.PinCode);
                Command.Parameters.AddWithValue("Role", user.Role);
                Command.Parameters.AddWithValue("Locale", user.Locale);
                Command.Parameters.AddWithValue("Color", color);

                Command.Parameters.AddWithValue("IsOnline", isOnline);
                Command.Parameters.AddWithValue("IsVerified", isVerified);
                Command.ExecuteNonQuery();


                Database.Connection.Close();
                statusCode          = 204;
                response.StatusCode = statusCode;
            }
            catch (MySqlException e)
            {
                if (e.Message.Contains("Duplicate entry"))
                {
                    statusCode = 409;
                }
                else
                {
                    // Internal Server Error
                    statusCode = 500;
                }

                Logger.QueryError(e, "User", "Updating User");
                // Status Code
                response.StatusCode = statusCode;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #21
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        /// Get User Insights
        /// </summary>
        /// <returns></returns>
        public Response GetInsights(Objects.User user)
        {
            int statusCode = 200;
            //user.Id = user.Id ?? Properties.Settings.Default.UserId;
            Response response = new Response();

            try
            {
                Database.Connection.Open();

                var yearMonth     = DateUtil.GetYearAndMonth(DateTime.Now);
                var weekNumOfYear = DateUtil.GetWeekNumber(DateTime.Now);
                var year          = DateUtil.GetYear(DateTime.Now);

                var query = "SELECT  " +
                            "( SELECT SUM(TotalPrice) FROM Sales WHERE(UserId =@UserId AND SoldAt BETWEEN CURRENT_DATE() AND(NOW() + INTERVAL 1 DAY)) ) AS DailyRevenue, " +
                            "( SELECT SUM(TotalPrice) FROM Sales WHERE(UserId =@UserId AND EXTRACT(WEEK FROM SoldAt) = @WeekNumOfYear)) AS WeeklyRevenue, " +
                            "( SELECT SUM(TotalPrice) FROM Sales WHERE(UserId =@UserId AND  EXTRACT(YEAR_MONTH FROM SoldAt) = @YearMonth) ) AS MonthlyRevenue,  " +
                            "( SELECT SUM(TotalPrice) FROM Sales WHERE(UserId =@UserId AND YEAR(SoldAt) = @Year) ) AS YearlyRevenue, " +
                            "( SELECT SUM(TotalPrice) FROM Sales WHERE(UserId =@UserId) ) AS TotalRevenue, " +

                            "( SELECT COUNT(*) FROM Sales WHERE(UserId =@UserId AND SoldAt BETWEEN CURRENT_DATE() AND(NOW() + INTERVAL 1 DAY)) ) AS DailySalesCount, " +
                            "( SELECT COUNT(*) FROM Sales WHERE(UserId =@UserId AND EXTRACT(WEEK FROM SoldAt) = @WeekNumOfYear)) AS WeeklySalesCount, " +
                            "( SELECT COUNT(*) FROM Sales WHERE(UserId =@UserId AND  EXTRACT(YEAR_MONTH FROM SoldAt) = @YearMonth) ) AS MonthlySalesCount,  " +
                            "( SELECT COUNT(*) FROM Sales WHERE(UserId =@UserId AND YEAR(SoldAt) = @Year) ) AS YearlySalesCount, " +
                            "( SELECT COUNT(*) FROM Sales WHERE(UserId =@UserId) ) AS TotalSalesCount";

                MySqlCommand Command = new MySqlCommand(query, Database.Connection);
                Command.Parameters.AddWithValue("UserId", user.Id);
                Command.Parameters.AddWithValue("WeekNumOfYear", weekNumOfYear);
                Command.Parameters.AddWithValue("YearMonth", yearMonth);
                Command.Parameters.AddWithValue("Year", year);
                MySqlDataReader DataReader = Command.ExecuteReader();

                while (DataReader.Read())
                {
                    user.DailyRevenue   = Func.ToDecimal(DataReader["DailyRevenue"].ToString());
                    user.WeeklyRevenue  = Func.ToDecimal(DataReader["WeeklyRevenue"].ToString());
                    user.MonthlyRevenue = Func.ToDecimal(DataReader["MonthlyRevenue"].ToString());
                    user.YearlyRevenue  = Func.ToDecimal(DataReader["YearlyRevenue"].ToString());
                    user.TotalRevenue   = Func.ToDecimal(DataReader["TotalRevenue"].ToString());

                    user.DailySalesCount   = Func.ToDouble(DataReader["DailySalesCount"].ToString());
                    user.WeeklySalesCount  = Func.ToDouble(DataReader["WeeklySalesCount"].ToString());
                    user.MonthlySalesCount = Func.ToDouble(DataReader["MonthlySalesCount"].ToString());
                    user.YearlySalesCount  = Func.ToDouble(DataReader["YearlySalesCount"].ToString());
                    user.TotalSalesCount   = Func.ToDouble(DataReader["TotalSalesCount"].ToString());
                }
                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.Data       = user;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "Getting User Insights");
                // Internal Error :
                response.StatusCode = 500;
            }
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #22
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        /// Get User
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public Response Get(Objects.User user)
        {
            //Props
            int statusCode = 200;

            user.Id = user.Id ?? Properties.Settings.Default.UserId;
            Response response = new Response();

            try
            {
                //Open MySqlConnection
                Database.Connection.Open();

                //Query
                string Query = "SELECT * FROM Users WHERE UserId=@UserId";

                //Execute Query
                MySqlCommand Command = new MySqlCommand(Query, Database.Connection);
                Command.Parameters.AddWithValue("UserId", user.Id);
                MySqlDataReader DataReader = Command.ExecuteReader();

                //Read Data
                while (DataReader.Read())
                {
                    user.Id          = DataReader["UserId"].ToString();
                    user.Token       = DataReader["Token"].ToString();
                    user.Username    = DataReader["Username"].ToString();
                    user.Password    = DataReader["Password"].ToString();
                    user.FirstName   = DataReader["FirstName"].ToString();
                    user.LastName    = DataReader["LastName"].ToString();
                    user.Email       = DataReader["Email"].ToString();
                    user.PinCode     = DataReader["PinCode"].ToString();
                    user.Role        = DataReader["Role"].ToString();
                    user.Locale      = DataReader["Locale"].ToString();
                    user.ImageBlobId = DataReader["ImageBlobId"].ToString();

                    user.IsOnline   = Func.ToBoolean(DataReader["IsOnline"].ToString());
                    user.IsVerified = Func.ToBoolean(DataReader["IsVerified"].ToString());

                    user.Color = ColorUtil.HEXToColor(DataReader["Color"].ToString());

                    user.LastActive   = Convert.ToDateTime(DataReader["LastActive"].ToString());
                    user.RegisteredAt = Convert.ToDateTime(DataReader["RegisteredAt"].ToString());
                }
                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                //Close Connection
                Database.Connection.Close();

                //GetImage Color
                user.ProfileImage = GetProfileImage(user.ImageBlobId, user.FirstName, user.Color);

                //Response
                response.StatusCode = statusCode;
                response.Data       = user;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "Getting User");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #23
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        /// Get Whole Registered Users if Admin
        /// </summary>
        public Response GetUsers(Objects.Store store)
        {
            //Props
            int           statusCode = 200;
            Response      response   = new Response();
            List <object> users      = new List <object>();

            store.Id = store.Id ?? Properties.Settings.Default.StoreId;

            try
            {
                Database.Connection.Open();

                string query = " SELECT DISTINCT Users.*, Blobs.Path As ProfileImageUrl " +
                               " FROM Users " +
                               " LEFT OUTER JOIN Blobs " +
                               " ON Blobs.BlobId = Users.ImageBlobId  " +
                               " ORDER BY RegisteredAt DESC ";

                //Execute Query With Connection  => DataReader
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);
                Command.Parameters.AddWithValue("StoreId", store.Id);
                MySqlDataReader DataReader = Command.ExecuteReader();

                //Read Data
                while (DataReader.Read())
                {
                    Objects.User user = new Objects.User
                    {
                        Id           = DataReader["UserId"].ToString(),
                        Token        = DataReader["Token"].ToString(),
                        Username     = DataReader["Username"].ToString(),
                        Password     = DataReader["Password"].ToString(),
                        FirstName    = DataReader["FirstName"].ToString(),
                        LastName     = DataReader["LastName"].ToString(),
                        Email        = DataReader["Email"].ToString(),
                        PinCode      = DataReader["PinCode"].ToString(),
                        Role         = DataReader["Role"].ToString(),
                        Locale       = DataReader["Locale"].ToString(),
                        ImageBlobId  = DataReader["ImageBlobId"].ToString(),
                        IsOnline     = Func.ToBoolean(DataReader["IsOnline"].ToString()),
                        IsVerified   = Func.ToBoolean(DataReader["IsVerified"].ToString()),
                        Color        = ColorUtil.HEXToColor(DataReader["Color"].ToString()),
                        LastActive   = Convert.ToDateTime(DataReader["LastActive"].ToString()),
                        RegisteredAt = Convert.ToDateTime(DataReader["RegisteredAt"].ToString()),
                    };

                    user.ProfileImage = GetProfileImage(user.ImageBlobId, user.FirstName, user.Color,
                                                        doRequest: false, imageUrl: DataReader["ProfileImageUrl"].ToString());

                    users.Add(user);
                }
                if (!DataReader.HasRows)
                {
                    // Bad Request
                    statusCode = 400;
                }
                else
                {
                    // OK
                    statusCode = 200;
                }

                //Close Connection
                Database.Connection.Close();

                //Response
                response.StatusCode = statusCode;
                response.DataArray  = users;
            }
            catch (MySqlException e)
            {
                Logger.QueryError(e, "User", "Getting Users");
                // Internal Error :
                response.StatusCode = 500;
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            return(response);
        }
예제 #24
0
파일: User.cs 프로젝트: vendstor/vendstor
        /// <summary>
        /// Create a new User
        /// </summary>
        /// <param name="username"> Username</param>
        /// <param name="email"> User Email</param>
        /// <param name="password"> User Password</param>
        /// <param name="pin"> User PIN </param>
        /// <returns></returns>
        public Response Register(Objects.User user, Objects.Store store)
        {
            //Props
            int      statusCode = 201;
            Response response   = new Response();

            //Random Tokens
            string userId    = ServerUtil.GenerateToken(TokenLengths.UserIdLength);
            string userToken = ServerUtil.GenerateToken(TokenLengths.UserTokenLength);

            user.PinCode = user.PinCode ?? ServerUtil.GenerateRandomNum(minChar: 100000, maxChar: 999999).ToString();
            store.Id     = store.Id ?? Properties.Settings.Default.StoreId;
            var _color = ColorUtil.ToHEXColor(user.Color);

            try
            {
                //Open MySqlConnection
                Database.Connection.Open();
                //Query
                string query = "INSERT INTO Users (UserId, Token, StoreId, Username, Password, FirstName, LastName, Email, " +
                               " PinCode, Role, Locale, Color, ImageBlobId) " +
                               "VALUES (@UserId, @Token, @StoreId, @Username, @Password, @FirstName, @LastName, @Email, " +
                               " @PinCode, @Role, @Locale, @Color, @ImageBlobId)";

                //Execute Query With MySqlConnection
                MySqlCommand Command = new MySqlCommand(query, Database.Connection);

                //Parameters For Security Purpose
                Command.Parameters.AddWithValue("UserId", userId);
                Command.Parameters.AddWithValue("Token", userToken);
                Command.Parameters.AddWithValue("StoreId", store.Id);
                Command.Parameters.AddWithValue("Username", user.Username);
                Command.Parameters.AddWithValue("Password", user.Password);
                Command.Parameters.AddWithValue("FirstName", user.FirstName);
                Command.Parameters.AddWithValue("LastName", user.LastName);
                Command.Parameters.AddWithValue("Email", user.Email);
                Command.Parameters.AddWithValue("PinCode", user.PinCode);
                Command.Parameters.AddWithValue("Role", user.Role);
                Command.Parameters.AddWithValue("Locale", user.Locale);
                Command.Parameters.AddWithValue("Color", _color);
                Command.Parameters.AddWithValue("ImageBlobId", user.ImageBlobId);

                Command.ExecuteNonQuery();

                //Close Connection
                Database.Connection.Close();

                // Status Code
                statusCode = 201;
            }
            catch (MySqlException e)
            {
                if (e.Message.Contains("Duplicate entry"))
                {
                    //Duplicate Key or Conflict
                    statusCode = 409;
                }
                else
                {
                    // Internal Server Error
                    statusCode = 500;
                }
                Logger.QueryError(e, "User", "Register");
            }
            //Close Connection if Open
            if (Database.Connection.State == ConnectionState.Open)
            {
                Database.Connection.Close();
            }

            //Response

            response.StatusCode = statusCode;
            response.Data       = user;

            return(response);
        }
예제 #25
0
 public int ULogin(Objects.User obj)
 {
     return(new DAL.User().ULogin(obj));
 }