public byte[] GetMemberPhoto(PhotoRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var qry = dbc.Members.AsQueryable(); OrgComm.Data.Models.Member member = null; if (model.Id.HasValue) { member = qry.Where(r => (!r.DelFlag) && (r.Id == model.Id.Value)).FirstOrDefault(); } else { throw new OrgException("Invalid id"); } if (member == null) { throw new OrgException("Member not found"); } else { if (member.Photo == null) { throw new OrgException("Photo not found"); } return(member.Photo); } } }
public byte[] GetGroupLogo(GroupRequestModel model) { byte[] byteImage = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var qry = dbc.Groups.AsQueryable(); byte[] logo = null; if (model.Id.HasValue) { logo = qry.Where(r => (r.Id == model.Id.Value)).Select(r => r.Logo).FirstOrDefault(); } else { throw new OrgException("Invalid id"); } if (logo == null) { throw new OrgException("Logo not found"); } else { return(logo); } } }
private static IList <Models.Member.MemberModel> GetGroupMember(OrgCommEntities context, int groupId) { var qry = from gm in context.GroupMembers join l in context.Lookups on new { type = (int)OrgComm.Data.Models.Lookup.LookupType.GroupMemberJoinedStatus, value = gm.JoinedStatus } equals new { type = l.TypeId, value = l.Value } join m in context.Members on gm.MemberId equals m.Id where gm.GroupId == groupId orderby m.Id select new Models.Member.MemberModel { Id = m.Id, FacebookId = m.FacebookId, Email = m.Email, FirstName = m.FirstName, LastName = m.LastName, NickName = m.Nickname, DisplayName = m.DisplayName, Gender = m.Gender, Company = m.Company.Name, Department = m.Department.Name, Position = m.Position.Name, EmployeeId = m.EmployeeId, Phone = m.Phone, Photo = MemberBL.PhotoUrlFormatString.Replace("{0}", m.Id.ToString()) }; return(qry.ToList()); }
public void RegisterToken(TokenModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var token = dbc.Tokens.SingleOrDefault(r => r.MemberId.Equals(model.MemberId)); if (token == null) { dbc.Tokens.Add(new OrgComm.Data.Models.MemberToken { MemberId = model.MemberId, Token = model.Token, IssuedUtc = model.IssuedUtc, ExpiresUtc = model.ExpiresUtc }); } else { token.Token = model.Token; token.IssuedUtc = model.IssuedUtc; token.ExpiresUtc = model.ExpiresUtc; } dbc.SaveChanges(); } }
public void RemoveFile(int?memberId, string fileId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.Upload upload = dbc.Uploads.SingleOrDefault(r => r.Id.Equals(fileId)); if (upload == null) { throw new OrgException("File not found"); } //validate owner if member Id is provided if (memberId.HasValue) { if (memberId.Value != upload.MemberId) { throw new OrgException("No authorization to remove file"); } } dbc.Uploads.Remove(upload); dbc.SaveChanges(); } }
public void CreateComment(int memberId, NewsCommentCreateRequesetModel model) { if ((model == null) || !model.NewsId.HasValue) { throw new OrgException("Invalid news"); } if ((model == null) || !model.Type.HasValue) { throw new OrgException("Invalid comment type"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.News news = dbc.News.SingleOrDefault(r => r.Id == model.NewsId.Value); if (news == null) { throw new OrgException("News not found"); } OrgComm.Data.Models.NewsComment comment = new OrgComm.Data.Models.NewsComment { Text = model.Text, Type = model.Type.Value, MemberId = memberId, CreatedDate = DateTime.Now }; news.Comments.Add(comment); news.CommentCount = news.Comments.Count(); dbc.SaveChanges(); } }
private NoteModel CreateNote(OrgComm.Data.Models.Note note) { NoteModel noteModel = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { if (!dbc.Members.Any(r => (!r.DelFlag) && (r.Id.Equals(note.MemberId)))) { throw new OrgException("Invalid member"); } dbc.Notes.Add(note); dbc.SaveChanges(); noteModel = new NoteModel { Id = note.Id, Text = note.Text, Image = (note.Image == null) ? null : NewsBL.ImageUrlFormatString.Replace("{0}", note.Id.ToString()), Type = note.Type, CreatedDate = note.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = note.CreatedDate.Ticks }; var lookupNoteType = dbc.Lookups.SingleOrDefault(r => (r.TypeId == (int)OrgComm.Data.Models.Lookup.LookupType.NoteType) && (r.Value == (int)note.Type)); if (lookupNoteType != null) { noteModel.TypeDescription = lookupNoteType.Description; } } return(noteModel); }
public IList <NoteModel> GetNotesByMember(int memberId) { List <NoteModel> noteList = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var tempList = (from n in dbc.Notes join l in dbc.Lookups on new { type = (int)OrgComm.Data.Models.Lookup.LookupType.NoteType, noteType = n.Type } equals new { type = l.TypeId, noteType = l.Value } into nl from nex in nl.DefaultIfEmpty() where n.MemberId.Equals(memberId) orderby n.Id select new { Id = n.Id, Type = n.Type, TypeDescription = (nex == null) ? null : nex.Description, Text = n.Text, Image = (n.Image == null) ? null : NoteBL.ImageUrlFormatString.Replace("{0}", n.Id.ToString()), CreatedDate = n.CreatedDate }).ToList(); noteList = tempList.Select(r => new NoteModel { Id = r.Id, Type = r.Type, TypeDescription = r.TypeDescription, Text = r.Text, Image = r.Image, CreatedDate = r.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = r.CreatedDate.Ticks }).ToList(); } return(noteList); }
public byte[] GetNoteImage(NoteRequestModel model) { byte[] byteImage = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var qry = dbc.Notes.AsQueryable(); byte[] image = null; if (model.Id.HasValue) { image = qry.Where(r => (r.Id == model.Id.Value)).Select(r => r.Image).FirstOrDefault(); } else { throw new OrgException("Invalid id"); } if (image == null) { throw new OrgException("Image not found"); } else { return(image); } } }
public void ChangePassword(int memberId, ChangePasswordRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.Member member = dbc.Members.SingleOrDefault(r => (!r.DelFlag) && r.Id.Equals(memberId)); if (member == null) { throw new OrgException("Invalid profile"); } if (!member.PasswordHash.Equals(GenerateHash(member.Salt, model.CurrentPassword))) { throw new OrgException("Incorrect password"); } string password = model.NewPassword; member.Salt = SecurityHelper.GenerateBase64SaltString(); member.PasswordHash = this.GenerateHash(member.Salt, password); member.UpdatedDate = DateTime.Now; dbc.SaveChanges(); } }
public void CreateNotice(NoticeCreateRequestModel model) { if (model == null) { throw new OrgException("Invalid notice"); } if (String.IsNullOrWhiteSpace(model.Title)) { throw new OrgException("Invalid title"); } if (String.IsNullOrWhiteSpace(model.Content)) { throw new OrgException("Invalid content"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.Notice notice = new OrgComm.Data.Models.Notice { Title = model.Title, Content = model.Content, CreatedBy = 1, //TEMP CreatedDate = DateTime.Now, }; dbc.Notices.Add(notice); dbc.SaveChanges(); } }
public void ResetPassword(ResetPasswordRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.Member member = dbc.Members.SingleOrDefault(r => (!r.DelFlag) && r.Email.Equals(model.Email)); if (member == null) { throw new OrgException(1, "Invalid profile"); } string password = System.Web.Security.Membership.GeneratePassword(8, 0); member.Salt = SecurityHelper.GenerateBase64SaltString(); member.PasswordHash = this.GenerateHash(member.Salt, password); member.UpdatedDate = DateTime.Now; dbc.SaveChanges(); if (AppConfigs.MailSendMail) { System.Collections.Specialized.ListDictionary listReplacement = new System.Collections.Specialized.ListDictionary(); listReplacement.Add("{password}", password); MailSender.Send(AppConfigs.MailFrom, member.Email, "Reset password", listReplacement, AppConfigs.MailTemplateResetPassword); } } }
public MemberModel Activate(ActivateRequestModel model) { OrgComm.Data.Models.Member member = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { member = dbc.Members.SingleOrDefault(r => (!r.DelFlag) && r.Id.Equals(model.MemberId)); if (member == null) { throw new OrgException(1, "Invalid profile"); } if (member.MemberStatus != (int)OrgComm.Data.Models.Member.StatusType.New) { throw new OrgException(1, "Invalid activation key"); } if (!member.ActivationKey.Equals(model.ActivationKey)) { throw new OrgException(2, "Invalid activation key"); } member.MemberStatus = (int)OrgComm.Data.Models.Member.StatusType.Activated; if (!model.DeviceOSId.HasValue || String.IsNullOrWhiteSpace(model.DeviceToken)) { throw new OrgException("Invalid device token"); } this.RegisterDevice(member.Id, new DeviceTokenRequestModel { OSId = model.DeviceOSId.Value, Token = model.DeviceToken }); dbc.SaveChanges(); } return(new MemberModel { Id = member.Id, FacebookId = member.FacebookId, Email = member.Email, FirstName = member.FirstName, LastName = member.LastName, NickName = member.Nickname, DisplayName = member.DisplayName, Gender = member.Gender, Company = member.Company.Name, Department = member.Department.Name, Position = member.Position.Name, EmployeeId = member.EmployeeId, Phone = member.Phone, Photo = (member.Photo == null) ? null : MemberBL.PhotoUrlFormatString.Replace("{0}", member.Id.ToString()) }); }
public IList <NewsCommentModel> GetCommentsByNewsId(NewsCommentByCriteriaRequestModel model) { if ((model == null) || !model.NewsId.HasValue) { throw new OrgException("Invalid news"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { OrgComm.Data.Models.News news = dbc.News.SingleOrDefault(r => r.Id == model.NewsId.Value); if (news == null) { throw new OrgException("News not found"); } var qry = (from c in news.Comments join m in dbc.Members on c.MemberId equals m.Id select new OrgComm.Data.Models.NewsComment { Id = c.Id, MemberId = (m.DelFlag)? 0 : c.MemberId, NewsId = c.NewsId, Text = c.Text, Type = c.Type, CreatedDate = c.CreatedDate } ); qry = qry.OrderByDescending(r => r.CreatedDate); if (model != null) { if (model.PageSize.HasValue && (model.PageSize.Value > 0)) { if (model.Page.HasValue && (model.Page.Value > 1)) { qry = qry.Skip((model.Page.Value - 1) * model.PageSize.Value); } qry = qry.Take(model.PageSize.Value); } } return(qry.Select(r => new NewsCommentModel { Id = r.Id, MemberId = r.MemberId, Text = r.Text, Type = r.Type, CreatedDate = r.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = r.CreatedDate.Ticks }).ToList()); } }
public IList <OrgComm.Data.Models.Company> GetCompanies() { List <OrgComm.Data.Models.Company> companies = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { companies = dbc.Company.ToList(); } return(companies); }
public void AcceptInvitaion(int memberId, AcceptGroupInvitationRequestModel model) { if (!model.GroupId.HasValue) { throw new OrgException("Invalid group Id"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { if (!dbc.Members.Any(r => (r.Id.Equals(memberId)))) { throw new OrgException("Member not found"); } if (!dbc.Groups.Any(r => (r.Id.Equals(model.GroupId.Value)))) { throw new OrgException("Group not found"); } var groupmember = dbc.GroupMembers.SingleOrDefault(r => r.GroupId.Equals(model.GroupId.Value) && r.MemberId.Equals(memberId)); if (groupmember == null) { throw new OrgException(1, "No group invitation"); } else { switch (groupmember.JoinedStatus) { case (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Active: throw new OrgException("Already in group"); case (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Block: throw new OrgException(2, "No group invitation"); case (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Requested: throw new OrgException(3, "No group invitation"); case (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Suspend: throw new OrgException(4, "No group invitation"); default: break; //(int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Invited } } try { groupmember.JoinedStatus = (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Active; groupmember.JoinedDate = DateTime.Now; dbc.SaveChanges(); } catch (System.Exception ex) { throw new OrgException("Cannot member to group", ex); } } }
public bool IsEmailAlreadyExists(string email) { if (String.IsNullOrWhiteSpace(email)) { throw new OrgException("Invalid e-mail"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { return(dbc.Members.Any(r => ((!r.DelFlag) && r.Email.Equals(email)))); } }
public bool IsPhoneNoAlreadyExists(string phoneNo) { if (String.IsNullOrWhiteSpace(phoneNo)) { throw new OrgException("Invalid phone no."); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { return(dbc.Members.Any(r => ((!r.DelFlag) && r.Phone.Equals(phoneNo)))); } }
private NoteModel UpdateNote(int?memberId, OrgComm.Data.Models.Note updateNote) { NoteModel noteModel = null; using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var note = dbc.Notes.SingleOrDefault(r => r.Id.Equals(updateNote.Id)); if (note == null) { throw new OrgException("Invalid note"); } if (memberId.HasValue && !note.MemberId.Equals(memberId.Value)) { throw new OrgException("Invalid note owner"); } if (updateNote.Type == (int)OrgComm.Data.Models.Note.NoteType.Text) { note.Type = updateNote.Type; note.Text = updateNote.Text; note.Image = null; } else if (updateNote.Type == (int)OrgComm.Data.Models.Note.NoteType.Image) { note.Type = updateNote.Type; note.Text = null; note.Image = updateNote.Image; } dbc.SaveChanges(); noteModel = new NoteModel { Id = note.Id, Text = note.Text, Image = (note.Image == null) ? null : NewsBL.ImageUrlFormatString.Replace("{0}", note.Id.ToString()), Type = note.Type, CreatedDate = note.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = note.CreatedDate.Ticks }; var lookupNoteType = dbc.Lookups.SingleOrDefault(r => (r.TypeId == (int)OrgComm.Data.Models.Lookup.LookupType.NoteType) && (r.Value == (int)note.Type)); if (lookupNoteType != null) { noteModel.TypeDescription = lookupNoteType.Description; } } return(noteModel); }
public void RemoveNoteByMemberId(int memberId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var noteList = dbc.Notes.Where(r => r.MemberId.Equals(memberId)); if (noteList.Count() > 0) { dbc.Notes.RemoveRange(noteList); dbc.SaveChanges(); } } }
public void RemoveFilesByMemberId(int memberId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var uploads = dbc.Uploads.Where(r => r.MemberId.Equals(memberId)); if (uploads.Count() > 0) { dbc.Uploads.RemoveRange(uploads); } dbc.SaveChanges(); } }
public void RemoveFriendByMemberId(int memberId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var friends = dbc.Friends.Where(r => r.MemberId.Equals(memberId) || r.FriendMemberId.Equals(memberId)); if (friends.Count() > 0) { dbc.Friends.RemoveRange(friends); } dbc.SaveChanges(); } }
public void SignOut(int memberId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var tk = dbc.Tokens.SingleOrDefault(r => r.MemberId.Equals(memberId)); if (tk != null) { dbc.Tokens.Remove(tk); dbc.SaveChanges(); } } }
public byte[] GetStickerItemImageById(int stickerItemId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { byte[] image = dbc.StickerItems.Where(r => (r.Id == stickerItemId)).Select(r => r.Image).FirstOrDefault(); if (image == null) { throw new OrgException("Image not found"); } return(image); } }
public byte[] GetImageNewsContentById(int newsContentId) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { byte[] image = dbc.NewsContent.Where(r => (r.Type == (int)OrgComm.Data.Models.NewsContent.ContentType.Image) && (r.Id == newsContentId)).Select(r => r.Data).FirstOrDefault(); if (image == null) { throw new OrgException("Content not found"); } return(image); } }
public void RevokeDevice(DeviceTokenRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var device = dbc.Devices.SingleOrDefault(r => r.OSId.Equals(model.OSId) && r.Token.Equals(model.Token)); if (device != null) { dbc.Devices.Remove(device); } dbc.SaveChanges(); } }
public void RevokeToken(TokenModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var token = dbc.Tokens.SingleOrDefault(r => r.MemberId.Equals(model.MemberId)); if (token != null) { dbc.Tokens.Remove(token); } dbc.SaveChanges(); } }
public IList <NewsModel> GetNewsByMember(int memberId, NewsByCriteriaRequestModel model) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var member = dbc.Members.SingleOrDefault(r => r.Id == memberId); if (member == null) { throw new OrgException("Invalid member"); } var qry = (from n in dbc.News where n.CompanyId == member.CompanyId select n); qry = qry.OrderByDescending(r => r.CreatedDate); if (model != null) { if (model.PageSize.HasValue && (model.PageSize.Value > 0)) { if (model.Page.HasValue && (model.Page.Value > 1)) { qry = qry.Skip((model.Page.Value - 1) * model.PageSize.Value); } qry = qry.Take(model.PageSize.Value); } } var news = qry.ToList(); return(news.Select(r => new NewsModel { Id = r.Id, LikeCount = r.LikeCount, CommentCount = r.CommentCount, Likes = r.Likes.Select(rr => new NewsLikeModel { MemberId = rr.MemberId, LikeType = rr.LikeType }).ToList(), Text = r.Contents.Where(cr => cr.Type == (int)OrgComm.Data.Models.NewsContent.ContentType.Text).Select(cr => Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, cr.Data))).ToList(), ImageUrl = r.Contents.Where(cr => cr.Type == (int)OrgComm.Data.Models.NewsContent.ContentType.Image).Select(cr => String.Format(NewsBL.ImageUrlFormatString, cr.Id)).ToList(), CreatedDate = r.CreatedDate.ToString(AppConfigs.GeneralDateTimeFormat), Ticks = r.CreatedDate.Ticks }).ToList()); } }
public void AddMember(int inviterId, AddGroupMemberRequestModel model) { if (!model.GroupId.HasValue) { throw new OrgException("Invalid group Id"); } if (!model.MemberId.HasValue) { throw new OrgException("Invalid member Id"); } using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { if (!dbc.Members.Any(r => (r.Id.Equals(model.MemberId.Value)))) { throw new OrgException("Member not found"); } if (!dbc.Groups.Any(r => (r.Id.Equals(model.GroupId.Value)))) { throw new OrgException("Group not found"); } if (dbc.GroupMembers.Any(r => r.GroupId.Equals(model.GroupId.Value) && r.MemberId.Equals(model.MemberId.Value))) { throw new OrgException("Already in group"); } try { dbc.GroupMembers.Add(new OrgComm.Data.Models.GroupMember { GroupId = model.GroupId.Value, InviterMemberId = inviterId, MemberId = model.MemberId.Value, JoinedDate = DateTime.Now, JoinedStatus = (int)OrgComm.Data.Models.GroupMember.JoinedStatusType.Invited }); dbc.SaveChanges(); } catch (System.Exception ex) { throw new OrgException("Cannot member to group", ex); } } }
public bool ValidateToken(string token) { using (OrgCommEntities dbc = new OrgCommEntities(DBConfigs.OrgCommConnectionString)) { var tk = dbc.Tokens.SingleOrDefault(r => r.Token.Equals(token)); if (tk == null) { return(false); } else { return(true); } } }