Example #1
0
        public IEnumerable <User> GetUsers(string filter = null, int skip = 0, int top = 0)
        {
            using (var context = new Data.CoreContext()) {
                IQueryable <User> users = context.Users;
                if (!String.IsNullOrEmpty(filter))
                {
                    string[] tags     = filter.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    string[] groupIds = GetMatchedUserGroupIds(tags);

                    users = users.Where(u => tags.All(t => u.Email.ToLower().Contains(t) || u.Name.ToLower().Contains(t) || u.Memberships.Any(m => groupIds.Contains(m.UserGroupUId))));
                }


                users = users.OrderBy(u => u.Name);

                if (skip != 0)
                {
                    users = users.Skip(skip);
                }

                if (top != 0)
                {
                    users = users.Take(top);
                }

                return(users.ToArray());
            }
        }
Example #2
0
        private void CreateBoxToken(string email)
        {
            UserToken token = null;

            using (var context = new Data.CoreContext()) {
                token           = context.UserTokens.Add(new UserToken());
                token.Email     = email;
                token.Token     = Guid.NewGuid().ToString();
                token.IssueDate = DateTime.Now;
                context.SaveChanges();
            }

            CleanOldTokens();

            // create encryption cookie
            //System.Web.Security.FormsAuthenticationTicket authTicket = new System.Web.Security.FormsAuthenticationTicket(
            //        1,
            //        token.Token,
            //        DateTime.Now,
            //        DateTime.Now.AddDays(1),
            //        true,
            //        "");

            //// add cookie to response stream
            //string encryptedTicket = System.Web.Security.FormsAuthentication.Encrypt(authTicket);

            //System.Web.HttpCookie authCookie = new System.Web.HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName, encryptedTicket);
            //System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);


            System.Web.Security.FormsAuthentication.SetAuthCookie(token.Token, true);
        }
Example #3
0
 /// <summary>
 /// Returns all users the have at least one of the given roles.
 /// </summary>
 /// <param name="roles">Roles</param>
 /// <returns>Users that have at least one of the given roles</returns>
 public IEnumerable <User> GetUsersWithRoles(string[] roles)
 {
     using (var context = new Data.CoreContext())
     {
         return(context.Users.Where(u => u.Memberships.Any(m => roles.Contains(m.UserGroupUId)) ||
                                    u.GroupCollectionMemberships.Any(g => g.Collection.CollectionGroups.Any(g2 => roles.Contains(g2.UserGroupUId)))).ToArray());
     }
 }
Example #4
0
        public Log GetLog(string id)
        {
            if (string.IsNullOrEmpty(id))
                return null;

            using (var context = new Data.CoreContext())
                return context.Logs.Where(l => l.LogUId == id).SingleOrDefault();
        }
Example #5
0
 public IEnumerable <AsyncTask> GetTasksWithoutResult(string taskType)
 {
     using (Data.CoreContext context = new Data.CoreContext()) {
         IEnumerable <AsyncTask> list = context.AsyncTasks.Where(a => a.Type == taskType).ToList();
         list.ToList().ForEach(t => t.Result = null);
         return(list);
     }
 }
Example #6
0
 /// <summary>
 /// Removes/Cancel the task.
 /// </summary>
 /// <param name="asyncTaskUId">The task UId to be updated</param>
 public void RemoveTask(string asyncTaskUId)
 {
     using (Data.CoreContext context = new Data.CoreContext()) {
         AsyncTask asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
         context.AsyncTasks.Remove(asyncTask);
         context.SaveChanges();
     }
 }
Example #7
0
        public IEnumerable <IUserGroup> GetGroupsFromGroupCollection(string fromGroupCollection)
        {
            GroupCollection_Group[] memberships;

            using (var context = new Data.CoreContext())
                memberships = context.GroupCollection_Groups.Where(m => m.GroupCollectionUId == fromGroupCollection).ToArray();

            return(allGroups.Where(g => memberships.Any(m => m.UserGroupUId == g.UserGroupUId)));
        }
Example #8
0
        public IEnumerable <Log> GetLogs(ref int totalRecords, string filter = null, int skip = 0, int top = 0, DateTime?dataDe = null, DateTime?dataAte = null)
        {
            using (var context = new Data.CoreContext())
            {
                IQueryable <Log> logs = context.Logs;

                if (!String.IsNullOrEmpty(filter))
                {
                    string[] tags = filter.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    logs = logs.Where(l => tags.All(t =>
                                                    l.SignedUser.ToLower() == t ||
                                                    l.Url.ToLower().Contains(t) ||
                                                    l.ActionDescription.ToLower().Contains(t) ||
                                                    l.UserIp.ToLower() == t));
                }

                if (dataDe != null)
                {
                    dataDe = dataDe.Value.Date;
                    logs   = logs.Where(l => l.When >= dataDe.Value);
                }

                if (dataAte != null)
                {
                    DateTime dataAteDiaSeguinte = dataAte.Value.AddDays(1).Date;
                    logs = logs.Where(l => l.When < dataAteDiaSeguinte);
                }

                logs = logs.OrderByDescending(l => l.When);

                // total records for pagination
                totalRecords = logs.Count();

                if (skip != 0)
                {
                    logs = logs.Skip(skip);
                }

                if (top != 0)
                {
                    logs = logs.Take(top);
                }

                return(logs.ToList().Select(l => new Log
                {
                    ActionDescription = l.ActionDescription,
                    ErrorDescription = l.ErrorDescription,
                    LogType = l.LogType,
                    LogUId = l.LogUId,
                    SignedUser = l.SignedUser,
                    Url = l.Url,
                    UserIp = l.UserIp,
                    When = l.When
                }).ToArray());
            }
        }
Example #9
0
        public IEnumerable <IUserGroup> GetGroupsFromUser(string fromUser)
        {
            GroupMembership[] memberships;

            using (var context = new Data.CoreContext())
                memberships = context.GroupMemberships.Where(m => m.Email == fromUser).ToArray();

            return(allGroups.Where(g => memberships.Any(m => m.UserGroupUId == g.UserGroupUId)));
        }
Example #10
0
        public Log GetLog(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(null);
            }

            using (var context = new Data.CoreContext())
                return(context.Logs.Where(l => l.LogUId == id).SingleOrDefault());
        }
Example #11
0
        public IEnumerable <GroupCollection> GetGroupCollectionFromUser(string fromUser)
        {
            List <GroupCollectionMembership> groupCollectionMemberships;

            using (var context = new Data.CoreContext()) {
                groupCollectionMemberships = context.GroupCollectionMemberships.Where(m => m.Email == fromUser).ToList();
                List <GroupCollection> groupCollection = context.GroupCollections.ToList();
                return(groupCollection.Where(g => groupCollectionMemberships.Any(m => m.GroupCollectionUId == g.GroupCollectionUId)));
            }
        }
Example #12
0
 public User GetUserByLoginNT(string loginNt)
 {
     using (var context = new Data.CoreContext()) {
         if (loginNt == null)
         {
             return(null);
         }
         return(context.Users.SingleOrDefault(u => u.LoginNT.ToLower() == loginNt.ToLower()));
     }
 }
Example #13
0
 private void CleanOldTokens()
 {
     using (var context = new Data.CoreContext()) {
         DateTime    oneWeekAgo = DateTime.Today.AddDays(-7);
         UserToken[] oldTokens  = context.UserTokens.Where(t => t.IssueDate < oneWeekAgo).ToArray();
         foreach (UserToken token in oldTokens)
         {
             context.UserTokens.Remove(token);
         }
         context.SaveChanges();
     }
 }
Example #14
0
 private void ResetLoginErrorsCount(string email)
 {
     using (var context = new Data.CoreContext()) {
         User user = context.Users.SingleOrDefault(u => u.Email == email);
         if (user == null)
         {
             return;
         }
         user.LoginErrorsCount = 0;
         user.Blocked          = false;
         context.SaveChanges();
     }
 }
Example #15
0
 public void RemoveUser(string email)
 {
     using (var context = new Data.CoreContext()) {
         User user = GetUser(email);
         if (user == null)
         {
             return;
         }
         context.Users.Attach(user);
         context.Users.Remove(user);
         context.SaveChanges();
     }
 }
Example #16
0
        public void RemoveGroupCollection(string groupCollectionUId)
        {
            using (var context = new Data.CoreContext()) {
                GroupCollection groupCollection = GetGroupCollection(groupCollectionUId);
                if (groupCollection == null)
                {
                    return;
                }

                context.GroupCollections.Attach(groupCollection);
                context.GroupCollections.Remove(groupCollection);
                context.SaveChanges();
            }
        }
Example #17
0
        public IEnumerable <GroupCollection> GetAllGroupCollection(string filter)
        {
            using (var context = new Data.CoreContext()) {
                IQueryable <GroupCollection> groupCollection = context.GroupCollections.Include("CollectionGroups");

                if (!String.IsNullOrEmpty(filter))
                {
                    string[] tags     = filter.ToLower().Split(new char[] { ' ' });
                    string[] groupIds = GetMatchedUserGroupIds(tags);
                    groupCollection = groupCollection.Where(g => tags.All(t => g.Name.ToLower().Contains(t) || g.CollectionGroups.Any(m => groupIds.Contains(m.UserGroupUId))));
                }

                return(groupCollection.ToArray());
            }
        }
Example #18
0
        public User GetUserByAuthToken(string token)
        {
            UserToken authToken = null;

            using (var context = new Data.CoreContext()) {
                DateTime lastDay = DateTime.Today.AddDays(-1);
                authToken = context.UserTokens.SingleOrDefault(t => t.Token == token && t.IssueDate >= lastDay);
            }

            if (authToken == null)
            {
                return(null);
            }

            return(GetUser(authToken.Email));
        }
Example #19
0
        public IEnumerable<Log> GetLogs(string filter = null, int skip = 0, int top = 0, DateTime? dataDe = null, DateTime? dataAte = null)
        {
            using (var context = new Data.CoreContext()) {
                IQueryable<Log> logs = context.Logs;

                if (!String.IsNullOrEmpty(filter)) {

                    string[] tags = filter.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    logs = logs.Where(l => tags.All(t =>
                        l.SignedUser.ToLower() == t ||
                        l.Url.ToLower().Contains(t) ||
                        l.ActionDescription.ToLower().Contains(t) ||
                        l.UserIp.ToLower() == t));
                }

                if (dataDe != null) {
                    dataDe = dataDe.Value.Date;
                    logs = logs.Where(l => l.When >= dataDe.Value);
                }

                if (dataAte != null) {
                    DateTime dataAteDiaSeguinte = dataAte.Value.AddDays(1).Date;
                    logs = logs.Where(l => l.When < dataAteDiaSeguinte);
                }

                logs = logs.OrderByDescending(l => l.When);

                if (skip != 0)
                    logs = logs.Skip(skip);

                if (top != 0)
                    logs = logs.Take(top);

                return logs.ToList().Select(l => new Log {
                    ActionDescription = l.ActionDescription,
                    ErrorDescription = l.ErrorDescription,
                    LogType = l.LogType,
                    LogUId = l.LogUId,
                    SignedUser = l.SignedUser,
                    Url = l.Url,
                    UserIp = l.UserIp,
                    When = l.When
                }).ToArray();

            }
        }
Example #20
0
        private void UpdateLoginErrorsCount(string email)
        {
            using (var context = new Data.CoreContext()) {
                User user = context.Users.SingleOrDefault(u => u.Email == email);
                if (user == null)
                {
                    return;
                }
                user.LoginErrorsCount++;
                if (user.LoginErrorsCount > MaxErrorCount && MaxErrorCount > 0 && MaxErrorCount != null)
                {
                    user.Blocked = true;
                }

                context.SaveChanges();
            }
        }
Example #21
0
        public UserToken GetAuthTokenByLoginNT(string loginNT)
        {
            UserToken authToken = null;

            using (var context = new Data.CoreContext()) {
                DateTime lastDay = DateTime.Today.AddDays(-1);
                string   email   = GetUserByLoginNT(loginNT).Email;
                authToken = context.UserTokens.OrderByDescending(d => d.IssueDate).FirstOrDefault(t => t.Email.ToLower() == email.ToLower() && t.IssueDate >= lastDay);
            }

            if (authToken == null)
            {
                return(null);
            }

            return(authToken);
        }
Example #22
0
        /// <summary>
        /// Creates tasks percentage.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="currentActivity">The current activity</param>
        /// <param name="pct">The current percentage</param>
        public void CreateTask(string asyncTaskUId, string type, string requiredRole, string currentActivity, string description, string fileName, string contentType, string mimeType)
        {
            AsyncTask asyncTask = new AsyncTask();
            asyncTask.AsyncTaskUId = asyncTaskUId;
            asyncTask.Type = type;
            asyncTask.CurrentAtivity = currentActivity;
            asyncTask.RequiredRole = requiredRole;
            asyncTask.Description = description;
            asyncTask.CurrentPercentage = 0;
            asyncTask.StartDate = DateTime.Now.ToUniversalTime();
            asyncTask.FileName = fileName;
            asyncTask.ResultContentType = contentType;
            asyncTask.ResultMimeType = mimeType;

            using (Data.CoreContext context = new Data.CoreContext()) {
                context.AsyncTasks.Add(asyncTask);
                context.SaveChanges();
            }
        }
Example #23
0
        public void CheckUniqueLoginNT(User user)
        {
            if (String.IsNullOrWhiteSpace(user.LoginNT))
            {
                return;
            }

            using (Core.Data.CoreContext context = new Data.CoreContext()) {
                // uses try/catch 'cuz some old versions may not have the LoginNT field at the database
                bool otherUser = false;
                try {
                    otherUser = context.Users.Any(x => x.LoginNT.ToLower() == user.LoginNT.ToLower() && x.Email != user.Email);
                } catch (Exception) { }

                if (otherUser)
                {
                    throw new HttpResponseException(System.Net.HttpStatusCode.Conflict);
                }
            }
        }
Example #24
0
        /// <summary>
        /// Creates tasks percentage.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="currentActivity">The current activity</param>
        /// <param name="pct">The current percentage</param>
        public void CreateTask(string asyncTaskUId, string type, string requiredRole, string currentActivity, string description, string fileName, string contentType, string mimeType)
        {
            AsyncTask asyncTask = new AsyncTask();

            asyncTask.AsyncTaskUId      = asyncTaskUId;
            asyncTask.Type              = type;
            asyncTask.CurrentAtivity    = currentActivity;
            asyncTask.RequiredRole      = requiredRole;
            asyncTask.Description       = description;
            asyncTask.CurrentPercentage = 0;
            asyncTask.StartDate         = DateTime.Now.ToUniversalTime();
            asyncTask.FileName          = fileName;
            asyncTask.ResultContentType = contentType;
            asyncTask.ResultMimeType    = mimeType;

            using (Data.CoreContext context = new Data.CoreContext()) {
                context.AsyncTasks.Add(asyncTask);
                context.SaveChanges();
            }
        }
Example #25
0
        private PasswordReset CreatePasswordReset(string email, string pass)
        {
            PasswordReset reset = null;

            using (var context = new Data.CoreContext()) {
                PasswordReset oldReset = context.PasswordResets.SingleOrDefault(p => p.Email.ToLower() == email.ToLower());
                if (oldReset != null)
                {
                    context.PasswordResets.Remove(oldReset);
                }
                reset = new PasswordReset()
                {
                    Email = email, IssueDate = DateTime.Now, Key = Guid.NewGuid().ToString(), NewPassword = Crypt(pass)
                };
                context.PasswordResets.Add(reset);
                context.SaveChanges();
            }

            return(reset);
        }
Example #26
0
        public void SignOutUser()
        {
            string token = System.Threading.Thread.CurrentPrincipal.Identity.Name;

            if (String.IsNullOrEmpty(token))
            {
                return;
            }

            using (var context = new Data.CoreContext()) {
                UserToken oldToken = context.UserTokens.SingleOrDefault(t => t.Token == token);
                if (oldToken != null)
                {
                    context.UserTokens.Remove(oldToken);
                    context.SaveChanges();
                }
            }

            System.Web.Security.FormsAuthentication.SignOut();
        }
Example #27
0
        public bool ApplyResetPassword(string key)
        {
            PasswordReset reset = null;

            using (var context = new Data.CoreContext()) {
                DateTime limitDate = DateTime.Now.AddHours(-2);
                reset = context.PasswordResets.SingleOrDefault(p => p.Key == key && p.IssueDate > limitDate);
                if (reset == null)
                {
                    return(false);
                }

                User user = GetUser(reset.Email);
                if (user == null)
                {
                    return(false);
                }

                context.Users.Attach(user);

                if (user.Password != null)
                {
                    user.Password.Password = reset.NewPassword;
                    user.Blocked           = false;
                    user.LoginErrorsCount  = 0;
                }
                else
                {
                    user.Password = new UserPassword()
                    {
                        Email = user.Email, Password = reset.NewPassword
                    }
                };

                context.PasswordResets.Remove(reset);

                context.SaveChanges();
            }

            return(true);
        }
Example #28
0
        /// <summary>
        /// Updates tasks percentage.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="currentActivity">The current activity</param>
        /// <param name="pct">The current percentage</param>
        public AsyncTask UpdateTask(string asyncTaskUId, string currentActivity, short pct)
        {
            AsyncTask asyncTask = null;

            using (Data.CoreContext context = new Data.CoreContext()) {
                try {
                    asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
                    if (asyncTask == null)
                    {
                        return(null);
                    }
                    asyncTask.CurrentAtivity    = currentActivity;
                    asyncTask.CurrentPercentage = pct;
                    context.SaveChanges();
                }
                catch {
                    asyncTask = null;
                }

                return(asyncTask);
            }
        }
Example #29
0
        /// <summary>
        /// Finishes the task.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="result">The byte array result</param>
        public void FinishTask(string asyncTaskUId)
        {
            using (Data.CoreContext context = new Data.CoreContext()) {
                AsyncTask asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
                if (asyncTask == null)
                    return;

                compress.Close();
                compress.Dispose();

                asyncTask.Result = memoryStream.ToArray();
                asyncTask.FileSize = asyncTask.Result.Length;
                asyncTask.EndDate = DateTime.Now.ToUniversalTime();
                context.SaveChanges();

                memoryStream.Close();
                memoryStream.Dispose();

                GC.Collect();

            }
        }
Example #30
0
        /// <summary>
        /// Finishes the task.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="result">The byte array result</param>
        public void FinishTask(string asyncTaskUId)
        {
            using (Data.CoreContext context = new Data.CoreContext()) {
                AsyncTask asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
                if (asyncTask == null)
                {
                    return;
                }

                compress.Close();
                compress.Dispose();

                asyncTask.Result   = memoryStream.ToArray();
                asyncTask.FileSize = asyncTask.Result.Length;
                asyncTask.EndDate  = DateTime.Now.ToUniversalTime();
                context.SaveChanges();

                memoryStream.Close();
                memoryStream.Dispose();

                GC.Collect();
            }
        }
Example #31
0
        public GroupCollection SaveGroupCollection(GroupCollection groupCollection)
        {
            using (var context = new Data.CoreContext()) {
                GroupCollection oldGroupCollection = GetGroupCollection(groupCollection.GroupCollectionUId);

                List <GroupCollection_Group> removedGroups = new List <GroupCollection_Group>();
                List <GroupCollection_Group> addedGroups   = groupCollection.CollectionGroups.ToList();

                if (oldGroupCollection == null)
                {
                    context.GroupCollections.Add(groupCollection);
                }
                else
                {
                    removedGroups = oldGroupCollection.CollectionGroups.Where(o => !groupCollection.CollectionGroups.Any(u => u.UserGroupUId == o.UserGroupUId)).ToList();
                    addedGroups   = groupCollection.CollectionGroups.Where(u => !oldGroupCollection.CollectionGroups.Any(o => o.UserGroupUId == u.UserGroupUId)).ToList();

                    context.GroupCollections.Attach(oldGroupCollection);
                    context.Entry <GroupCollection>(oldGroupCollection).CurrentValues.SetValues(groupCollection);
                }

                foreach (GroupCollection_Group m in removedGroups)
                {
                    context.GroupCollection_Groups.Remove(m);
                }

                foreach (GroupCollection_Group m in addedGroups)
                {
                    m.GroupCollectionUId = groupCollection.GroupCollectionUId;
                    context.GroupCollection_Groups.Add(m);
                }

                context.SaveChanges();

                return(groupCollection);
            }
        }
Example #32
0
 /// <summary>
 /// Gets a task.
 /// </summary>
 /// <param name="asyncTaskUId">The task UId</param>
 /// <returns>The task</returns>
 public AsyncTask GetTask(string asyncTaskUId)
 {
     using (Data.CoreContext context = new Data.CoreContext())
         return context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
 }
Example #33
0
 public AsyncTask GetCurrentTask(string taskType)
 {
     using (Data.CoreContext context = new Data.CoreContext()) {
         return context.AsyncTasks.SingleOrDefault(a => a.Type == taskType && a.EndDate == null);
     }
 }
Example #34
0
        public void Log(string actionDescription, string errorDescription = null, bool saveParameters = true)
        {
            string url = "unknow";
            string login = "******";
            string ip = "unknow";
            DateTime when = DateTime.Now.ToUniversalTime();
            Dictionary<string, object> dicParameters = null;

            var httpContext = System.Web.HttpContext.Current;
            if (httpContext != null) {
                url = httpContext.Request.Url.OriginalString;
                ip = httpContext.Request.UserHostAddress;

                // if was not via IMPORT
                if (security == null)
                    security = new SecurityService();

                User user = security.GetSignedUser();

                if (user != null)
                    login = user.Email;

                if (user != null && user.LoginNT != null)
                    login = login + " (" + user.LoginNT + ")";

                if (saveParameters) {

                    dicParameters = new Dictionary<string, object>();

                    //Salvar dados que são enviados no corpo da requisição
                    if (httpContext.Request.InputStream.Length > 0) {
                        httpContext.Request.InputStream.Position = 0;
                        using (StreamReader reader = new StreamReader(httpContext.Request.InputStream)) {
                            if (httpContext.Request.ContentType.ToLower().Contains("application/json;"))
                                dicParameters["body"] = Newtonsoft.Json.JsonConvert.DeserializeObject(reader.ReadToEnd());
                            else
                                dicParameters["body"] = reader.ReadToEnd();
                        }
                    }
                    //Salvar dados que são enviados via GET
                    if (httpContext.Request.QueryString.HasKeys()) {
                        Dictionary<string, string> dicGet = new Dictionary<string, string>();
                        dicParameters["get"] = NameValueCollectionToDictionary(httpContext.Request.QueryString);
                    }
                    //Salvar dados que são enviados via POST
                    if (httpContext.Request.Form.HasKeys()) {
                        dicParameters["post"] = NameValueCollectionToDictionary(httpContext.Request.Form);
                    }
                }
            }

            string parameters = null;

            if (dicParameters != null && dicParameters.Count > 0)
                parameters = Newtonsoft.Json.JsonConvert.SerializeObject(dicParameters);

            short logType = 0;
            if (!string.IsNullOrEmpty(errorDescription)) {
                logType = (short)LogTypes.ERROR;
            }

            Log log = new Log() { LogUId = Guid.NewGuid().ToString(), ActionDescription = actionDescription, ErrorDescription = errorDescription, LogType = logType, SignedUser = login, Url = url, UserIp = ip, When = when, Parameters = parameters };

            try {
                using (var context = new Data.CoreContext()) {
                    context.Logs.Add(log);
                    context.SaveChanges();

                    // delete old records
                    DateTime yearAgo = when.AddYears(-1);
                    context.Database.ExecuteSqlCommand("DELETE FROM Logs WHERE Logs.When < '" + yearAgo.Year + "-" + yearAgo.Month + "-" + yearAgo.Day + " 00:00:00'");
                }
            }
            catch (Exception) { }
        }
Example #35
0
        /// <summary>
        /// Updates tasks percentage.
        /// </summary>
        /// <param name="asyncTaskUId">The task UId to be updated</param>
        /// <param name="currentActivity">The current activity</param>
        /// <param name="pct">The current percentage</param>
        public AsyncTask UpdateTask(string asyncTaskUId, string currentActivity, short pct)
        {
            AsyncTask asyncTask = null;
            using (Data.CoreContext context = new Data.CoreContext()) {
                try {
                    asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
                    if (asyncTask == null)
                        return null;
                    asyncTask.CurrentAtivity = currentActivity;
                    asyncTask.CurrentPercentage = pct;
                    context.SaveChanges();
                }
                catch {
                    asyncTask = null;
                }

                return asyncTask;
            }
        }
Example #36
0
 /// <summary>
 /// Removes/Cancel the task.
 /// </summary>
 /// <param name="asyncTaskUId">The task UId to be updated</param>
 public void RemoveTask(string asyncTaskUId)
 {
     using (Data.CoreContext context = new Data.CoreContext()) {
         AsyncTask asyncTask = context.AsyncTasks.SingleOrDefault(a => a.AsyncTaskUId == asyncTaskUId);
         context.AsyncTasks.Remove(asyncTask);
         context.SaveChanges();
     }
 }
Example #37
0
 public IEnumerable<AsyncTask> GetTasksWithoutResult(string taskType)
 {
     using (Data.CoreContext context = new Data.CoreContext()) {
         IEnumerable<AsyncTask> list = context.AsyncTasks.Where(a => a.Type == taskType).ToList();
         list.ToList().ForEach(t => t.Result = null);
         return list;
     }
 }
Example #38
0
 /// <summary>
 /// Gets all tasks uids of a given type.
 /// </summary>
 /// <param name="type">The type</param>
 /// <returns>The ids array</returns>
 public string[] GetTasksUIds(string type)
 {
     using (Data.CoreContext context = new Data.CoreContext())
         return context.AsyncTasks.Where(a => a.Type == type).Select(a => a.AsyncTaskUId).ToArray();
 }
Example #39
0
 public GroupCollection GetGroupCollection(string groupCollectionUId)
 {
     using (var context = new Data.CoreContext())
         return(context.GroupCollections.Include("CollectionGroups").SingleOrDefault(g => g.GroupCollectionUId == groupCollectionUId));
 }
Example #40
0
 public User GetUser(string email)
 {
     using (var context = new Data.CoreContext()) {
         return(context.Users.Include("Memberships").Include("GroupCollectionMemberships.Collection.CollectionGroups").Include("Password").SingleOrDefault(u => u.Email.ToLower() == email.ToLower()));
     }
 }
Example #41
0
        public User SaveUser(User user)
        {
            using (var context = new Data.CoreContext()) {
                CheckUniqueLoginNT(user);

                // gets the old version of user
                User oldUser = GetUser(user.Email);

                List <GroupMembership> removedGroups = new List <GroupMembership>();
                List <GroupMembership> addedGroups   = user.Memberships.ToList();

                List <GroupCollectionMembership> removedGroupCollection = new List <GroupCollectionMembership>();
                List <GroupCollectionMembership> addedGroupCollection   = user.GroupCollectionMemberships.ToList();

                if (user.Password != null)
                {
                    user.Password.Password = Crypt(user.Password.Password);
                    user.Password.Email    = user.Email;
                }

                if (String.IsNullOrWhiteSpace(user.LoginNT))
                {
                    user.LoginNT = null;
                }

                user.LoginErrorsCount = 0;

                if (oldUser != null)
                {
                    //Groups
                    removedGroups = oldUser.Memberships.Where(o => !user.Memberships.Any(u => u.UserGroupUId == o.UserGroupUId)).ToList();
                    addedGroups   = user.Memberships.Where(u => !oldUser.Memberships.Any(o => o.UserGroupUId == u.UserGroupUId)).ToList();

                    //GroupsCollection
                    removedGroupCollection = oldUser.GroupCollectionMemberships.Where(o => !user.GroupCollectionMemberships.Any(u => u.GroupCollectionUId == o.GroupCollectionUId)).ToList();
                    addedGroupCollection   = user.GroupCollectionMemberships.Where(u => !oldUser.GroupCollectionMemberships.Any(o => o.GroupCollectionUId == u.GroupCollectionUId)).ToList();

                    context.Users.Attach(oldUser);
                    context.Entry <User>(oldUser).CurrentValues.SetValues(user);

                    // if the password was changed
                    if (oldUser.Password != null && user.Password != null)
                    {
                        oldUser.Password.Password = user.Password.Password;
                    }

                    // ig it has no password before, and now it was added
                    if (oldUser.Password == null && user.Password != null)
                    {
                        context.UserPasswords.Add(user.Password);
                    }
                }
                else
                {
                    context.Users.Add(user);
                }

                foreach (GroupMembership m in removedGroups)
                {
                    context.GroupMemberships.Remove(m);
                }

                foreach (GroupMembership m in addedGroups)
                {
                    m.Email = user.Email;
                    context.GroupMemberships.Add(m);
                }

                foreach (GroupCollectionMembership m in removedGroupCollection)
                {
                    context.GroupCollectionMemberships.Remove(m);
                }

                foreach (GroupCollectionMembership m in addedGroupCollection)
                {
                    m.Email = user.Email;
                    context.GroupCollectionMemberships.Add(m);
                }


                context.SaveChanges();
            }
            return(user);
        }