public void StarTaskDAL(int noteID) { try { using (var context = new WinNotesEntities()) { Note note = new Note(); note = context.Note.Where(n => n.NoteID == noteID).First(); if (note.Completed != true) { if (note.Starred != false) { note.Starred = false; } else { note.Starred = true; } context.SaveChanges(); } } } catch { throw; } }
public List <Note> CheckExpiredEventsDAL(string encryptedUser) { try { using (var context = new WinNotesEntities()) { int userID = context.Person.Where(p => p.PersonIDEncrypted == encryptedUser).First().PersonID; List <Note> notes = context.Note.Where(n => n.Person_ID == userID && n.Completed != true).ToList(); List <Note> expiredNotes = new List <Note>(); foreach (var note in notes) { bool isExpired = (note.ExpirationDate - DateTime.Now).TotalDays <= 0; if (isExpired) { expiredNotes.Add(note); note.Completed = true; context.SaveChanges(); } } return(expiredNotes); } } catch { throw; } }
/// <summary> /// Recopila la información que se va a guardar como sesión de usuario. /// </summary> /// <param name="Email">Correo electrónico</param> /// <param name="Password">Contraseña</param> /// <returns></returns> public UserLoginData LoginDAL(string email, string password) { try { using (var context = new WinNotesEntities()) { sp_login_Result user = context.sp_login(email, password).First(); //Person user = context.Person.Where(p => p.Email == email && p.Password == password).FirstOrDefault(); UserLoginData login = null; if (user != null) { login = new UserLoginData( user.PersonID, user.UserName, user.Email, GetAvatarImage(user.AvatarImage, user.AvatarMIMEType), Convert.ToBoolean(user.Active) ); //user.LastLoginDate = DateTime.Now; //context.SaveChanges(); context.sp_refreshLoginDate(user.PersonID); } return(login); } } catch { throw; } }
/// <summary> /// Devuelve la información del usuario que se mostrará en el panel de la izquierda al crear una nota /// </summary> /// <param name="userID">ID del usuario</param> /// <returns></returns> public string[] GetUserBoxInfoDAL(int userID) { try { using (var context = new WinNotesEntities()) { Person user = context.Person.Where(p => p.PersonID == userID).First(); int foldersCount = context.Folder.Where(f => f.Person_ID == userID).Count(); int notesCount = context.Note.Where(n => n.Person_ID == userID).Count(); string[] userBoxInfo = null; userBoxInfo = new string[] { user.UserName, user.PersonalPhrase, user.PhraseColor, new UserDAL().GetAvatarImage(user.AvatarImage, user.AvatarMIMEType), foldersCount.ToString(), notesCount.ToString() }; return(userBoxInfo); } } catch { throw; } }
public void ChangeDatetimeEventDAL(string currentDate, int hour, int minute, string timeTable, int id_note, int userID) { try { using (var context = new WinNotesEntities()) { var note = context.Note.Where(n => n.NoteID.Equals(id_note) && n.Person_ID.Equals(userID)).First(); if (note.Completed != true) { List <int> date = currentDate.Split('/').Select(int.Parse).ToList(); if (timeTable == "PM" && hour < 12) { hour = hour + 12; } else if (timeTable == "AM" && hour == 12) { hour = 0; } DateTime datetimeParsed = new DateTime(date[2], date[1], date[0], hour, minute, 0); note.ExpirationDate = datetimeParsed; context.SaveChanges(); } } } catch (Exception ex) { throw ex; } }
public IQueryable <NoteInformationQueryable> GetDataForNoteList(int userID) { try { var context = new WinNotesEntities(); IQueryable <NoteInformationQueryable> notes = context.Note.Join(context.Folder, n => n.Folder_ID, f => f.FolderID, (n, f) => new { n, f }) .Where(parameters => parameters.n.Person_ID == userID) .Select(m => new NoteInformationQueryable { NoteID = m.n.NoteID, Title = m.n.Title, Details = m.n.Details, ExpirationDate = m.n.ExpirationDate, Starred = m.n.Starred, Completed = m.n.Completed, BelongsToFolderID = m.f.FolderID, BelongsToFolderName = m.f.Name }); return(notes); } catch { throw; } }
public void CreateFolderDAL(int id, string name, string details) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //if(!context.Folder.Any(f => f.Name == name)) //{ // Folder folder = new Folder(); // folder.Name = name; // folder.Details = details; // folder.LastModified = DateTime.Now; // folder.Person_ID = id; // context.Folder.Add(folder); // context.SaveChanges(); //} //else //{ // throw new ArgumentException("Ya existe una carpeta con ese nombre"); //} #endregion context.sp_createNewFolder(id, name, details); } } catch { throw; } }
/// <summary> /// Devuelve la información de perfil del usuario. /// </summary> /// <param name="userID">ID del usuario actual</param> /// <returns></returns> public string[] GetUserInformation(int userID) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //Person PersonData = context.Person.Where(p => p.PersonID == userID).FirstOrDefault(); //var UserInformation = new string[] { GetAvatarImage(PersonData.AvatarImage, PersonData.AvatarMIMEType), // PersonData.PersonalPhrase, // PersonData.PhraseColor, // PersonData.UserName, // PersonData.Email, // PersonData.RegistrationDate.ToShortDateString() // }; //return UserInformation; #endregion sp_getUserInformation_Result userInformation = context.sp_getUserInformation(userID).First(); return(new string[] { this.GetAvatarImage(userInformation.AvatarImage, userInformation.AvatarMIMEType), userInformation.PersonalPhrase, userInformation.PhraseColor, userInformation.UserName, userInformation.Email, userInformation.RegistrationDate.ToShortDateString() }); } } catch { throw; } }
/// <summary> /// Cambia la contraseña del usuario /// </summary> /// <param name="email">Correo electrónico</param> /// <param name="currentPassword">Contraseña actual</param> /// <param name="newPassword">Nueva contraseña</param> /// <param name="error">Posible error</param> /// <returns></returns> public void ChangePasswordDAL(int userID, string currentPassword, string newPassword) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //var user = context.Person.Where(p => p.PersonID == userID).First(); //if (user.Password == currentPassword) //{ // user.Password = newPassword; // context.SaveChanges(); //} //else // throw new ArgumentException("EL CAMPO CONTRASEÑA ACTUAL NO ES CORRECTO"); #endregion context.sp_changePassword(userID, currentPassword, newPassword); } } catch { throw; } }
// METODOS PARA WIZARD public string AvatarInfoForWizardDAL(int userID) { using (var context = new WinNotesEntities()) { var userInfo = context.Person.Where(u => u.PersonID == userID).FirstOrDefault(); return(this.GetAvatarImage(userInfo.AvatarImage, userInfo.AvatarMIMEType)); } }
/// <summary> /// Verifica la existencia del nombre de usuario elegido. /// </summary> /// <param name="UserName">Nombre de usuario</param> /// <returns></returns> public bool CheckUserNameDAL(string UserName) { using (var context = new WinNotesEntities()) { //bool result = context.Person.Any(p => p.UserName == UserName); var result = new ObjectParameter("result", typeof(bool)); context.sp_verifyUserName(UserName, result); return((bool)result.Value); } }
public string[] PhraseInfoForWizardDAL(int userID) { using (var context = new WinNotesEntities()) { var userInfo = context.Person.Where(u => u.PersonID == userID).FirstOrDefault(); return(new string[] { userInfo.PersonalPhrase, userInfo.PhraseColor }); } }
/// <summary> /// Devuelve el ID de usuario encriptado desde la base de datos. /// </summary> /// <param name="email">Correo electrónico</param> /// <returns></returns> public string RetrieveEncryptedID(string email) { try { using (var context = new WinNotesEntities()) { return(context.Person.Where(p => p.Email == email).First().PersonIDEncrypted); } } catch { throw; } }
public string GetEncryptedUserID(int userID) { try { using (var context = new WinNotesEntities()) { return(context.Person.Where(p => p.PersonID == userID).First().PersonIDEncrypted); } } catch { throw; } }
public Folder GetFolderDataDAL(int folderID) { try { using (var context = new WinNotesEntities()) { Folder folder = context.Folder.Where(f => f.FolderID == folderID).First(); return(folder); } } catch (Exception ex) { throw ex; } }
public List <Note> GetNotesInFolderDAL(int userID, int folderID) { try { using (var context = new WinNotesEntities()) { List <Note> notes = context.Note.Where(n => n.Folder_ID == folderID && n.Person_ID == userID).ToList(); return(notes); } } catch { throw; } }
/// <summary> /// Crea un nuevo usuario en la base de datos. /// </summary> /// <param name="UserName">Nombre de usuario</param> /// <param name="Email">Correo electrónico</param> /// <param name="Password">Contraseña</param> /// <returns></returns> public string CreateUserDAL(string UserName, string Email, string Password) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //var existingUser = context.Person.Any(p => p.Email == Email); //if (!existingUser && !CheckUserNameDAL(UserName)) //{ // Person newUser = new Person(); // newUser.UserName = UserName; // newUser.Email = Email; // newUser.Password = Password; // newUser.AvatarImage = null; // newUser.AvatarMIMEType = null; // newUser.Active = false; // newUser.RegistrationDate = DateTime.Now; // newUser.LastLoginDate = DateTime.Now; // context.Person.Add(newUser); // context.SaveChanges(); // newUser.PersonIDEncrypted = this.EncryptToSHA256(newUser.PersonID); // context.SaveChanges(); // return Email; //} //return null; #endregion var userID_objResult = context.sp_createNewUser(UserName, Email, Password).First(); if (userID_objResult.HasValue) { int userID = userID_objResult.Value; context.sp_saveEncryptedUserID(userID, this.EncryptToSHA256(userID)); return(Email); } return(null); } } catch { throw; } }
/// <summary> /// Guarda el ID de usuario encriptado en la base de datos. /// </summary> /// <param name="IdentifierEncrypted"></param> /// <param name="email"></param> public void SaveHashDAL(string IdentifierEncrypted, string email) { try { using (var context = new WinNotesEntities()) { Person person = context.Person.Where(p => p.Email == email).First(); person.PersonIDEncrypted = IdentifierEncrypted; context.SaveChanges(); } } catch (Exception ex) { throw ex; } }
public IEnumerable <sp_getUserFolders_Result> GetAllFoldersDAL(int userID) { try { using (var context = new WinNotesEntities()) { //IEnumerable<Folder> folders = context.Folder.Where(f => f.Person_ID == userID).ToList(); List <sp_getUserFolders_Result> folders = context.sp_getUserFolders(userID).ToList(); return(folders); } } catch { throw new NullReferenceException("No se pudo recuperar el listado de carpetas"); } }
/// <summary> /// Crea una nueva nota y devuelve true o false /// </summary> /// <param name="title">Titulo</param> /// <param name="details">Detalles</param> /// <param name="expirationDate">Fecha de expiración</param> /// <param name="starred">Destacado</param> /// <param name="folderSelected">Carpeta elegida</param> /// <returns></returns> public void CreateNoteDAL(int userID, string title, string details, DateTime expirationDate, bool starred, string folderSelected, int hourSelected, int minuteSelected, string timeTableSelected, ref int folderAuxID) { try { switch (timeTableSelected) { case "AM": if (hourSelected == 12) { hourSelected = 0; } break; case "PM": if (hourSelected != 12) { hourSelected += 12; } break; default: throw new ArgumentException("No se reconoce como un horario válido"); } expirationDate = new DateTime(expirationDate.Year, expirationDate.Month, expirationDate.Day, hourSelected, minuteSelected, 0); using (var context = new WinNotesEntities()) { Note newNote = new Note(); newNote.Title = title; newNote.Details = details; newNote.ExpirationDate = expirationDate; newNote.Starred = starred; newNote.Completed = false; newNote.Folder_ID = context.Folder.Where(f => f.Name.Equals(folderSelected)).First().FolderID; newNote.Person_ID = userID; context.Note.Add(newNote); context.SaveChanges(); folderAuxID = newNote.Folder_ID; } } catch { throw; } }
public void ChangeFolderDAL(int noteID, int userID, string folderSelected) { try { using (var context = new WinNotesEntities()) { int folderID = context.Folder.Where(f => f.Name == folderSelected && f.Person_ID == userID).First().FolderID; Note note = context.Note.Where(n => n.NoteID == noteID).First(); if (note.Completed != true) { note.Folder_ID = folderID; context.SaveChanges(); } } } catch { throw; } }
/// <summary> /// Cambia la imágen de perfil del usuario. /// </summary> /// <param name="avatarImage">Imágen de perfil</param> /// <param name="MIMEType">Información MIME</param> /// <param name="email">Correo electrónico</param> /// <returns></returns> public void ChangeAvatar(Image avatarImage, string MIMEType, int userID) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //Person PersonData = context.Person.Where(p => p.PersonID == userID).First(); //PersonData.AvatarImage = ConvertImageToByteArray(avatarImage); //PersonData.AvatarMIMEType = MIMEType; //context.SaveChanges(); #endregion context.sp_changeAvatar(userID, ConvertImageToByteArray(avatarImage), MIMEType); } } catch { throw; } }
/// <summary> /// Cambia la frase personal del usuario. /// </summary> /// <param name="email">Correo electrónico</param> /// <param name="phrase">Frase personal</param> /// <param name="phraseColor">Fuente de color de la frase</param> /// <returns></returns> public void ChangePersonalPhraseDAL(int userID, string phrase, string phraseColor) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //Person PersonData = context.Person.Where(p => p.PersonID == userID).First(); //PersonData.PersonalPhrase = phrase; //PersonData.PhraseColor = phraseColor; //context.SaveChanges(); #endregion context.sp_changePersonalPhrase(userID, phrase, phraseColor); } } catch { throw; } }
/// <summary> /// Devuelve las carpetas del usuario que se van listar en el combo /// </summary> /// <param name="userID">ID del usuario</param> /// <returns></returns> public IEnumerable <SelectListItem> GetFoldersToSelectDAL(int userID, string toFolder) { try { using (var context = new WinNotesEntities()) { List <Folder> foldersToList = context.Folder.Where(f => f.Person_ID.Equals(userID)).ToList(); List <SelectListItem> listOfFolders = new List <SelectListItem>(); listOfFolders.Add(new SelectListItem() { Value = String.Empty, Text = "Sin carpeta...", Selected = true }); foreach (var f in foldersToList) { if (toFolder != f.Name) { listOfFolders.Add(new SelectListItem() { Value = f.Name, Text = f.Name }); } else { listOfFolders.Add(new SelectListItem() { Value = f.Name, Text = f.Name, Selected = true }); } } return(listOfFolders); } } catch { throw; } }
public void RemoveFolderDAL(int userID, int folderID) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //var notes = context.Note.Where(n => n.Person_ID == userID && n.Folder_ID == folderID); //context.Note.RemoveRange(notes); //var folder = context.Folder.Where(f => f.Person_ID == userID && f.FolderID == folderID).First(); //context.Folder.Remove(folder); //context.SaveChanges(); #endregion context.sp_removeFolder(userID, folderID); } } catch { throw; } }
public void EditFolderDAL(int userID, int folderID, string name, string details) { try { using (var context = new WinNotesEntities()) { #region FORMA ALTERNATIVA //var folder = context.Folder.Where(f => f.Person_ID == userID && f.FolderID == folderID).First(); //folder.Name = name; //folder.Details = details; //folder.LastModified = DateTime.Now; //context.SaveChanges(); #endregion context.sp_editFolder(userID, folderID, name, details); } } catch { throw; } }
public void UpdateAvatar(string path, int userID) { bool deleteTemporaryFiles = false; if (!String.IsNullOrEmpty(path)) { using (var context = new WinNotesEntities()) { var user = context.Person.Where(p => p.PersonID == userID).FirstOrDefault(); if (path != "/Content/Images/user_profile.jpg") { if (!path.StartsWith("data:image")) { using (Image img = CreateImageFromPathString(path)) { System.Drawing.Imaging.ImageFormat format = img.RawFormat; System.Drawing.Imaging.ImageCodecInfo codec = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders().First(c => c.FormatID == format.Guid); user.AvatarImage = ConvertImageToByteArray(img); user.AvatarMIMEType = codec.MimeType; context.SaveChanges(); deleteTemporaryFiles = true; } } } else { user.AvatarImage = null; user.AvatarMIMEType = null; context.SaveChanges(); } } if (deleteTemporaryFiles) { DeleteDirectory(path); } } }
/// <summary> /// Devuelve la información necesaria para recuperar una sesión. /// </summary> /// <param name="encryptedID">ID encriptado del usuario</param> /// <returns></returns> public UserLoginData RememberSessionInfoDAL(string encryptedID) { using (var context = new WinNotesEntities()) { UserLoginData userLoggedIn = null; Person user = context.Person.Where(p => p.PersonIDEncrypted == encryptedID).FirstOrDefault(); if (user != null) { userLoggedIn = new UserLoginData( user.PersonID, user.UserName, user.Email, GetAvatarImage(user.AvatarImage, user.AvatarMIMEType), Convert.ToBoolean(user.Active) ); user.LastLoginDate = DateTime.Now; context.SaveChanges(); } return(userLoggedIn); } }
public List <SelectListItem> GetFoldersOfUserDAL(int userID) { try { using (var context = new WinNotesEntities()) { List <Folder> folders = context.Folder.Where(f => f.Person_ID == userID).ToList(); List <SelectListItem> folderComboBox = new List <SelectListItem>(); foreach (var folder in folders) { folderComboBox.Add(new SelectListItem { Value = folder.Name, Text = folder.Name }); } return(folderComboBox); } } catch { throw new ArgumentException("No se han podido cargar las carpetas disponibles"); } }
public string TemporaryAvatarDAL(HttpPostedFile tempAvatar, HttpServerUtilityBase localServer, int userID) { try { if (tempAvatar == null) { throw new ArgumentNullException("Debe elegir una imágen."); } string imgDir; using (var context = new WinNotesEntities()) { imgDir = "/Content/Temp/" + context.Person.Where(p => p.PersonID == userID).Single().UserName; } Directory.CreateDirectory(localServer.MapPath(imgDir)); string imgFullPath = localServer.MapPath(imgDir) + "/" + tempAvatar.FileName; // Get file data byte[] data = new byte[] { }; using (var binaryReader = new BinaryReader(tempAvatar.InputStream)) { data = binaryReader.ReadBytes(tempAvatar.ContentLength); } // Guardar imagen en el servidor using (FileStream image = File.Create(imgFullPath, data.Length)) { image.Write(data, 0, data.Length); } // Verifica si la imágen cumple las condiciones de validación const int _maxSize = 2 * 1024 * 1024; const int _maxWidth = 1000; const int _maxHeight = 1000; List <string> _fileTypes = new List <string>() { "jpg", "jpeg", "gif", "png" }; string fileExt = Path.GetExtension(tempAvatar.FileName); if (new FileInfo(imgFullPath).Length > _maxSize) { throw new FormatException("El avatar no debe superar los 2mb."); } if (!_fileTypes.Contains(fileExt.Substring(1), StringComparer.OrdinalIgnoreCase)) { throw new FormatException("Para el avatar solo se admiten imágenes JPG, JPEG, GIF Y PNG."); } using (Image img = Image.FromFile(imgFullPath)) { if (img.Width > _maxWidth || img.Height > _maxHeight) { throw new FormatException("El avatar admite hasta una resolución de 1000x1000."); } } return(imgDir + "/" + tempAvatar.FileName); } catch { throw; } }