/// <summary> /// Kullanıcı Log Ekleme /// </summary> /// <param name="logMessage"></param> /// <param name="userID"></param> /// <param name="isError"></param> public static void AddLog(string logMessage, int userID, bool isError) { using (OfflineMessageEntities db = new OfflineMessageEntities()) { DataAccess.UserLog uLog = new UserLog(); uLog.date = DateTime.Now; uLog.logMessage = logMessage; uLog.isError = isError; uLog.userID = userID; db.UserLog.Add(uLog); db.SaveChanges(); } }
/// <summary> /// Kullanıcı blocklama işlemi yapar /// </summary> /// <param name="username"></param> /// <param name="otherUsername"></param> /// <param name="token"></param> public static BusinessResponse addBlock(string username, string otherUsername, string token) { DataAccess.User user = User.getUser(username, token); DataAccess.User otherUser = User.getUser(otherUsername); if (user == null || user == null) { return new BusinessResponse() { isSuccess = false, message = "Kullanıcı bulunamadı!" } } ; using (OfflineMessageEntities db = new OfflineMessageEntities()) { bool isAny = (from s in db.Block where s.blockerID == user.ID && s.blockedID == otherUser.ID select s).Any(); if (isAny) { return new BusinessResponse() { isSuccess = false, message = "Bloklama işlemi daha önce yapılmış" } } ; else { try { DataAccess.Block block = new DataAccess.Block(); block.blockerID = user.ID; block.blockedID = otherUser.ID; block.date = DateTime.Now; db.Block.Add(block); db.SaveChanges(); Log.AddLog("Bloklandı", user.ID, false); return(new BusinessResponse() { isSuccess = true, message = "Ok" }); } catch (Exception ex) { Log.AddLog(ex.Message, "addBlock"); return(new BusinessResponse() { isSuccess = false, message = "Kritik Hata" }); } } } }
/// <summary> /// Kullanıcının gönderdiği ve aldığı tüm mesajları listeler /// </summary> /// <param name="userName"></param> /// <param name="token"></param> /// <returns></returns> public static BusinessResponse <List <message> > getAllMessages(string userName, string token) { List <message> message; DataAccess.User user = User.getUser(userName, token); if (user == null) { return new BusinessResponse <List <message> >() { isSuccess = true, message = "Geçersiz kullanııcı", Data = null } } ; using (OfflineMessageEntities db = new OfflineMessageEntities()) { try { CultureInfo tr = new CultureInfo("tr-TR"); message = (from s in db.Message.ToList() where s.senderID == user.ID || s.recipientID == user.ID orderby s.date descending select new message { date = s.date.ToString("G", tr), text = s.messageContent, sender = (from p in db.User where p.ID == s.senderID select p.username).FirstOrDefault(), recipient = (from p in db.User where p.ID == s.recipientID select p.username).FirstOrDefault(), isRead = false, }).ToList(); Log.AddLog("Tüm Mesajlar Listelendi", user.ID, false); return(new BusinessResponse <List <message> >() { isSuccess = true, message = "Ok", Data = message }); } catch (Exception ex) { Log.AddLog(ex.Message, "getAllMessages"); return(new BusinessResponse <List <message> >() { isSuccess = false, message = "Kritik Hata", Data = null }); } } } }
/// <summary> /// Var olan bir bloklama kaldırılır /// </summary> /// <param name="username"></param> /// <param name="otherUsername"></param> /// <param name="token"></param> public static BusinessResponse removeBlock(string username, string otherUsername, string token) { DataAccess.User user = User.getUser(username, token); DataAccess.User otherUser = User.getUser(otherUsername); if (user == null || user == null) { return new BusinessResponse() { isSuccess = false, message = "Kullanııcı Bulunamadı" } } ; using (OfflineMessageEntities db = new OfflineMessageEntities()) { try { List <DataAccess.Block> blocks = (from s in db.Block where s.blockerID == user.ID && s.blockedID == otherUser.ID select s).ToList(); if (blocks.Count > 0) { db.Block.RemoveRange(blocks); db.SaveChanges(); Log.AddLog("Block Kaldırıldı", user.ID, false); return(new BusinessResponse() { isSuccess = true, message = "Ok" }); } else { Log.AddLog("Block Kaldırılamadı: Bloklama yapılmamış", user.ID, false); return(new BusinessResponse() { isSuccess = false, message = "Kaldırılacak bir blok bulunamadı!" }); } } catch (Exception ex) { Log.AddLog(ex.Message, "removeBlock"); return(new BusinessResponse() { isSuccess = false, message = "Kritik Hata " + DateTime.Now.ToString() }); } } }
/// <summary> /// İki kullanıcı arasında blok olup olmadığını kontrol eder /// </summary> /// <param name="username"></param> /// <param name="otherUsername"></param> /// <returns></returns> public static BusinessResponse <DataAccess.Block> checkBlock(string username, string otherUsername) { DataAccess.User user = User.getUser(username); DataAccess.User otherUser = User.getUser(otherUsername); if (user == null || otherUser == null) { return new BusinessResponse <DataAccess.Block>() { isSuccess = false, message = "Kullanıcı Bulunamadı", Data = null } } ; using (OfflineMessageEntities db = new OfflineMessageEntities()) { List <DataAccess.Block> blocks; try { blocks = (from s in db.Block where (s.blockerID == user.ID && s.blockedID == otherUser.ID) || (s.blockerID == otherUser.ID && s.blockedID == user.ID) select s).ToList(); if (blocks.Count > 0) { return new BusinessResponse <DataAccess.Block>() { isSuccess = true, message = "Bloklandı!", Data = blocks[0] } } ; //Bloklanmış else { return new BusinessResponse <DataAccess.Block>() { isSuccess = true, message = "Ok", Data = null } }; //Bloklama yok } catch (Exception ex) { Log.AddLog(ex.Message, "checkBlock"); return(new BusinessResponse <DataAccess.Block>() { isSuccess = false, message = "Kritik Hata", Data = null }); } } } }
/// <summary> /// Mesaj göndermek için kullanılan method /// </summary> /// <param name="senderUser"></param> /// <param name="recipientUser"></param> /// <param name="token"></param> /// <param name="message"></param> public static BusinessResponse sendMessage(string senderUser, string recipientUser, string token, string message) { DataAccess.User sender = User.getUser(senderUser, token); DataAccess.User recipient = User.getUser(recipientUser); if (sender != null && recipient != null) { using (OfflineMessageEntities db = new OfflineMessageEntities()) { try { DataAccess.Message msg = new DataAccess.Message(); msg.senderID = sender.ID; msg.recipientID = recipient.ID; msg.messageContent = message; msg.date = DateTime.Now; msg.isRead = false; db.Message.Add(msg); db.SaveChanges(); Log.AddLog("Mesaj Kaydedildi", sender.ID, false); return(new BusinessResponse() { isSuccess = true, message = "Ok" }); } catch (Exception ex) { Log.AddLog(ex.Message, "sendMessage"); return(new BusinessResponse() { isSuccess = false, message = "Kritik Hata" }); } } } else { return new BusinessResponse() { isSuccess = true, message = "Geçersiz kullanıcı bilgisi!" } }; }
/// <summary> /// Giriş yaptıktan sonra token döner /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static BusinessResponse <DataAccess.UserToken> Login(string username, string password) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return new BusinessResponse <UserToken>() { isSuccess = true, message = "Kullanıcı adı veya şifre yanlış!", Data = null } } ; using (OfflineMessageEntities db = new OfflineMessageEntities()) { DataAccess.User user = User.getUser(username); if (user == null) { return new BusinessResponse <UserToken>() { isSuccess = true, message = "Kullanıcı adı veya şifre yanlış!", Data = null } } ; else if (user.password == CalculateSha1(password)) { try { List <UserToken> tokens = (from s in db.UserToken where s.userID == user.ID && s.expireDate > DateTime.Now orderby s.expireDate descending select s).ToList(); if (tokens.Count < 5) { UserToken token = new UserToken(); token.date = DateTime.Now; token.userID = user.ID; token.token = createToken(); token.expireDate = DateTime.Now.AddDays(14); db.UserToken.Add(token); db.SaveChanges(); Log.AddLog("Giriş Yapıldı, yeni token alındı.", user.ID, false); return(new BusinessResponse <UserToken>() { isSuccess = true, message = "OK", Data = token }); } else { Log.AddLog("Giriş Yapıldı", user.ID, false); return(new BusinessResponse <UserToken>() { isSuccess = true, message = "OK", Data = tokens[0] }); } } catch (Exception ex) { Log.AddLog(ex.Message, "Login"); return(new BusinessResponse <UserToken>() { isSuccess = false, message = "Kritik Hata! " + DateTime.Now.ToString(), Data = null }); } } else { Log.AddLog("Başarısız Giriş", user.ID, false); return(new BusinessResponse <UserToken>() { isSuccess = true, message = "Kullanıcı adı veya şifre yanlış!", Data = null }); } } }