public Task <JsonResponse> UpdateAnnouncementFavorite(int userID, int favID, string fav) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { TimeSpan time = new TimeSpan(00, 06, 30, 0); if (fav == "Favorite") { FavoriteList newFav = new FavoriteList() { UserID = userID, FavoriteID = favID, FavoriteType = "Announcement", CreatedDate = DateTime.UtcNow.Add(time) }; db.FavoriteLists.Add(newFav); } else { FavoriteList favToUpdate = db.FavoriteLists.Where(a => a.UserID == userID && a.FavoriteID == favID && a.FavoriteType == "Announcement").SingleOrDefault(); db.FavoriteLists.Remove(favToUpdate); } db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Successfully Favorite" }; } })); }
public Task <JsonResponse> PostFeedback(int reasonID, string comment, int react, string fullname) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { StudentFeedback feedback = new StudentFeedback() { ReasonID = reasonID, Comment = comment, React = react, CreatedBy = fullname, CreatedDate = DateTime.Now }; db.StudentFeedbacks.Add(feedback); db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Successfully Saved" }; } catch (Exception ex) { return new JsonResponse() { Flag = true, Message = ex.Message }; } } })); }
public Task <JsonResponse> LogOut(int userID, string token) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { //User user = db.Users.Where(x => x.ID == userID && x.IsDelete != true).SingleOrDefault(); List <MobileDeviceToken> tokenDevice = db.MobileDeviceTokens.Where(x => x.UserID == userID && x.DeviceToken == token).ToList(); foreach (var item in tokenDevice) { db.MobileDeviceTokens.Remove(item); } db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Success" }; } catch (Exception) { return null; } } })); }
public Task <JsonResponse> TurnOffTwoFactor(int UserID) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.ID == UserID).SingleOrDefault(); if (user == null) { return new JsonResponse() { Flag = true, Message = "User is not found" }; } else { //bool flag = false; string Message = ""; var aspNetUserID = db.AspNetUsers.Where(x => x.UserName == user.LoginName).Select(x => x.Id).SingleOrDefault(); TwoFactorAuthenticatedUser twoFactorUser = db.TwoFactorAuthenticatedUsers.Where(x => x.AspNetUserID == aspNetUserID).SingleOrDefault(); if (twoFactorUser != null) { db.TwoFactorAuthenticatedUsers.Remove(twoFactorUser); db.SaveChanges(); Message = "Two-Factor Authentication is Off."; //flag = true; } return new JsonResponse() { Flag = true, Message = Message }; } } catch (Exception ex) { return new JsonResponse() { Flag = false, Message = ex.Message }; } } })); }
public Task <JsonResponse> TwoFactorVerify(string AspNetUserID, string Code) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { TwoFactorAuthenticatedUser user = db.TwoFactorAuthenticatedUsers.Where(x => x.AspNetUserID == AspNetUserID && x.Code == Code).SingleOrDefault(); if (user == null) { return new JsonResponse() { Flag = true, Message = "User is not found" }; } else { string Message = "Your code is expired."; if (user.UpdatedDate.AddMinutes(2).ToUniversalTime() > DateTime.Now.ToUniversalTime()) { user.IsVerified = true; //db.TwoFactorAuthenticatedUsers.Add(user); db.SaveChanges(); Message = "Two-Factor Authentication is On."; } return new JsonResponse() { Flag = true, Message = Message }; } } catch (Exception ex) { return new JsonResponse() { Flag = false, Message = ex.Message }; } } })); }
public Task <JsonResponse> ChangeSeen(int userID, int NotiID) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { if (NotiID != 0) { NotiVisibility notiVisibility = db.NotiVisibilities.Where(x => x.NotiID == NotiID && x.UserID == userID).SingleOrDefault(); notiVisibility.IsSeen = true; db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "IsSeen changed." }; } else { return new JsonResponse() { Flag = true, Message = "No Changes(Coming soon)" }; } //return true; } catch (Exception ex) { return new JsonResponse() { Flag = true, Message = ex.Message }; } } })); }
//public Task<JsonResponse> ChangePassword(ChangePassword req) //{ // return Task.Run(async () => // { // using (MIUEntities db = new MIUEntities()) // { // try // { // User user = db.Users.Where(x => x.ID == req.UserID).FirstOrDefault(); // if (user == null) // { // return new JsonResponse() { Flag = true, Message = "User is not found" }; ; // } // else // { // string Message = ""; // if (user.Password == req.CurrentPassword) // { // if (req.NewPassword == req.ComfirmPassword) // { // user.Password = req.NewPassword; // db.SaveChanges(); // Message = "Update Password Successfully!."; // } // else // { // Message = "New password and confirm password are not same."; // } // } // else // { // Message = "Current Password is incorrect."; // } // //db.SaveChanges(); // return new JsonResponse() { Flag = true, Message = Message }; // } // } // catch (Exception ex) // { // return new JsonResponse() { Flag = false, Message = ex.Message }; // } // } // }); //} public Task <JsonResponse> ChangePhoneNumber(int UserID, string PhoneNumber) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.ID == UserID).FirstOrDefault(); if (user == null) { return new JsonResponse() { Flag = true, Message = "User is not found" };; } else { user.ContactNumber = PhoneNumber; db.SaveChanges(); string Message = "Update Phone Number Successfully!."; return new JsonResponse() { Flag = true, Message = Message }; } //db.SaveChanges(); } catch (Exception ex) { return new JsonResponse() { Flag = false, Message = ex.Message }; } } })); }
public Task <JsonResponse> UpdateDeviceToken(int userID, string token) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.ID == userID && x.IsDelete != true).SingleOrDefault(); var tokenDevice = db.MobileDeviceTokens.Where(x => x.UserID == userID && x.DeviceToken == token).ToList(); MobileDeviceToken data = new MobileDeviceToken(); data.UserID = userID; data.DeviceToken = token; data.CreatedBy = user.FullName; data.CreatedDate = DateTime.Now; data.UpdatedBy = user.FullName; data.UpdatedDate = DateTime.Now; if (tokenDevice.Count == 0) { db.MobileDeviceTokens.Add(data); db.SaveChanges(); } return new JsonResponse() { Flag = true, Message = "Create Successfully" }; } catch (Exception) { return null; } } })); }
public Task <JsonResponse> UpdateEventCalendarFavorite(int userID, int favID, string fav) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { string msg = ""; if (fav == "Favorite") { var isDuplicate = db.FavoriteLists.Where(x => x.FavoriteID == favID && x.UserID == userID).Count() > 0; if (!isDuplicate) { FavoriteList newFav = new FavoriteList() { UserID = userID, FavoriteID = favID, FavoriteType = "EventCalendar", CreatedDate = DateTime.Now }; db.FavoriteLists.Add(newFav); } msg = "Favorite"; } else { FavoriteList favToUpdate = db.FavoriteLists.Where(a => a.UserID == userID && a.FavoriteID == favID && a.FavoriteType == "EventCalendar").SingleOrDefault(); db.FavoriteLists.Remove(favToUpdate); msg = "UnFavorite"; } db.SaveChanges(); return new JsonResponse() { Flag = true, Message = msg }; } })); }
public Task <JsonResponse> EventCalendarReact(int userID, int eventID, string action) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { action = action.ToUpper() == "GOING" ? "Going" : "Interested"; bool reactFlag = false; string loginName = db.Users.Where(a => a.ID == userID).Select(a => a.LoginName).SingleOrDefault(); EventCalendarReact react = db.EventCalendarReacts.Where(a => a.LoginName == loginName && a.Action == action && a.EventID == eventID).SingleOrDefault(); if (react != null) { reactFlag = react.Flag == true ? false : true; react.Flag = react.Flag == true ? false : true; } else { EventCalendarReact newReact = new EventCalendarReact(); newReact.LoginName = loginName; newReact.EventID = eventID; newReact.Action = action; newReact.Flag = true; newReact.CreatedDate = DateTime.Now; newReact.CreatedUser = db.Users.Where(a => a.ID == userID).Select(a => a.LoginName).SingleOrDefault(); db.EventCalendarReacts.Add(newReact); reactFlag = true; } db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Successfully Reacted" }; } })); }
public Task <JsonResponse> IncreaseViewerCount(int userID, int newsID) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { bool isViewed = db.NewsViewers.Any(a => a.UserID == userID && a.NewsID == newsID); if (!isViewed) { NewsViewer newsViewer = new NewsViewer() { NewsID = newsID, UserID = userID }; db.NewsViewers.Add(newsViewer); db.SaveChanges(); } return new JsonResponse() { Flag = true, Message = "Successfully Increased" }; } })); }
public Task <JsonResponse> EditProfile(EditProfile EditProfile) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.ID == EditProfile.ID).SingleOrDefault(); List <User> userList = db.Users.Where(x => x.IsDelete != true && x.EmailAccount == EditProfile.EmailAccount).ToList(); var list = userList.ToList(); var emailExists = userList.Where(x => x.ID != EditProfile.ID).ToList(); if (user == null) { return new JsonResponse() { Flag = true, Message = "User is not found" }; } else if (user != null && emailExists.Count() > 0) { return new JsonResponse() { Flag = true, Message = "Email already exists" }; } else { string ImageName = ""; if (!String.IsNullOrEmpty(EditProfile.FileName) && EditProfile.FileName != "\"\"" && EditProfile.FileName != "") { Guid guid = Guid.NewGuid(); ImageName = guid.ToString() + "_" + Path.GetFileName(EditProfile.FileName); user.ProfilePicture = ImageName; if (!string.IsNullOrEmpty(EditProfile.Base64Image) && EditProfile.Base64Image != "\"\"" && EditProfile.Base64Image != "") { byte[] Base64Image = Convert.FromBase64String(EditProfile.Base64Image); MIUFileServer.SaveToFileServer("ProfileImages", ImageName, Base64Image); } } //user.ID = EditProfile.ID; //user.FullName = EditProfile.FullName; //user.Address = EditProfile.Address; //user.DOB = EditProfile.DOB.Date; user.EmailAccount = EditProfile.EmailAccount; user.ContactNumber = EditProfile.ContactNumber; user.MobilePhoneNumber = EditProfile.ContactNumber; user.ModifiedBy = EditProfile.ModifiedBy; user.ModifiedDate = EditProfile.ModifiedDate; user.OrderDatetime = DateTime.Now; AspNetUser aspNetUser = db.AspNetUsers.Where(x => x.UserName == user.LoginName).SingleOrDefault(); aspNetUser.Email = EditProfile.EmailAccount; db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Successfully Updated" }; } } catch (Exception ex) { return new JsonResponse() { Flag = false, Message = ex.Message }; } } })); }
public Task <NotiInfo> GetNotificationList(int userID, int currentIndex, int maxRow) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { NotiInfo Notifications = new NotiInfo(); try { User user = db.Users.Where(x => x.ID == userID && x.IsDelete != true).SingleOrDefault(); Notifications.NotiCount = 0; var skip = (currentIndex - 1) * maxRow; List <Notification> NotiList = (from n in db.Notifications where n.NotiTypeId != 1 && (!db.NotiVisibilities.Any(nv => nv.NotiID == n.ID && nv.UserID == userID) || db.NotiVisibilities.Any(nv => nv.NotiID == n.ID && nv.UserID == userID)) select n).ToList(); List <Notification> SubscriptionList = (from n in db.Notifications //join nv in db.NotiVisibilities.Where(nv => nv.UserID != userID) on n.ID equals nv.NotiID into noti from x in noti.DefaultIfEmpty() join s in db.Subscribtions.Where(s => s.UserID == userID) on n.ID equals s.NotiID where (!db.NotiVisibilities.Any(nv => nv.NotiID == n.ID && nv.UserID == userID) || db.NotiVisibilities.Any(nv => nv.NotiID == n.ID && nv.UserID == userID)) && n.NotiTypeId == 1 select n).ToList(); List <NotiVisibility> notiVisibilities = new List <NotiVisibility>(); List <NotiListInfo> NotiListInfo = new List <NotiListInfo>(); foreach (var data in NotiList) { NotiListInfo info = new NotiListInfo(); PropertyCopier <Notification, NotiListInfo> .Copy(data, info); var NotiType = db.NotificationTypes.Where(x => x.ID == data.NotiTypeId).SingleOrDefault(); if (NotiType.ID == 1) { LeadNotification LeadNoti = new LeadNotification(); LeadNoti = db.LeadNotifications.Where(x => x.NotificationId == data.ID).FirstOrDefault(); if (LeadNoti != null) { info.RelatedTableID = LeadNoti.LeadId; info.RelatedTableName = "Lead"; } } else if (NotiType.ID == 2) { NewsNoti NewNoti = new NewsNoti(); NewNoti = db.NewsNotis.Where(x => x.NotiID == data.ID).FirstOrDefault(); if (NewNoti != null) { info.RelatedTableID = NewNoti.NewsID; info.RelatedTableName = "News"; } } //info.RelatedTableID = db. NotiListInfo.Add(info); //Get Notification List NotiVisibility notiVisibility = new NotiVisibility(); notiVisibilities = db.NotiVisibilities.Where(x => x.UserID == userID && x.NotiID == data.ID).ToList(); if (notiVisibilities.Count == 0) { notiVisibility.NotiID = data.ID; notiVisibility.UserID = userID; notiVisibility.IsSeen = false; db.NotiVisibilities.Add(notiVisibility); } else { foreach (var notiVis in notiVisibilities) { foreach (var NotiListing in NotiListInfo) { if (NotiListing.UserId != null && NotiListing.ID == notiVis.NotiID && NotiListing.UserId == notiVis.UserID && notiVis.IsSeen == true) { NotiListing.IsSeen = true; } else if (NotiListing.ID == notiVis.NotiID && notiVis.IsSeen == true) { NotiListing.IsSeen = true; } } } } } foreach (var data in SubscriptionList) { NotiListInfo info = new NotiListInfo(); PropertyCopier <Notification, NotiListInfo> .Copy(data, info); var NotiType = db.NotificationTypes.Where(x => x.ID == data.NotiTypeId).SingleOrDefault(); if (NotiType.ID == 1) { LeadNotification LeadNoti = db.LeadNotifications.Where(x => x.NotificationId == data.ID).FirstOrDefault(); if (LeadNoti != null) { info.RelatedTableID = LeadNoti.LeadId; info.RelatedTableName = "Lead"; } } else if (NotiType.ID == 2) { NewsNoti NewNoti = db.NewsNotis.Where(x => x.NotiID == data.ID).FirstOrDefault(); if (NewNoti != null) { info.RelatedTableID = NewNoti.NewsID; info.RelatedTableName = "News"; } } //info.RelatedTableID = db. NotiListInfo.Add(info); //Get Notification List NotiVisibility notiVisibility = new NotiVisibility(); notiVisibilities = db.NotiVisibilities.Where(x => x.UserID == userID && x.NotiID == data.ID).ToList(); if (notiVisibilities.Count == 0) { notiVisibility.NotiID = data.ID; notiVisibility.UserID = userID; notiVisibility.IsSeen = false; db.NotiVisibilities.Add(notiVisibility); } else { foreach (var notiVis in notiVisibilities) { foreach (var NotiListing in NotiListInfo) { if (NotiListing.ID == notiVis.NotiID && NotiListing.UserId == notiVis.UserID && notiVis.IsSeen == true) { NotiListing.IsSeen = true; //NotiListInfo.Add(NotiListing); } } } } } List <NotiListInfo> WebNotiList = new List <NotiListInfo>(); WebNotiList = GetWebNotification(userID); NotiListInfo.AddRange(WebNotiList); NotiListInfo.ForEach(x => { if (x.UpdatedDate == null) { x.UpdatedDate = x.CreatedDate; x.UpdatedBy = x.CreatedBy; } }); // if updated date is null set updated date value from created date. Notifications.NotiList = NotiListInfo.OrderByDescending(x => x.CreatedDate).Skip(skip).Take(maxRow).ToList(); db.SaveChanges(); //Add to IsSeenNotification Table int TotalNotiCount = db.Notifications.Where(x => x.NotiTypeId != 1).Count(); int IsSeenNotiCount = db.NotiVisibilities.Where(x => x.UserID == userID).Count(); Notifications.NotiCount = 0; } catch (System.Exception ex) { //throw ex; } return Notifications; } })); }
public Task <JsonResponse> ForgotPassword(string email) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.EmailAccount == email).FirstOrDefault(); if (user == null) { return new JsonResponse() { Flag = true, Message = "User is not found" };; } else { Random rnd = new Random(); string code = rnd.Next(1, 999999).ToString("D6"); AspNetUser aspNetUser = db.AspNetUsers.Where(x => x.Email == email).FirstOrDefault(); var check = (from a in db.AspNetUserAuthentications where a.UserID == aspNetUser.Id select a.UserID).FirstOrDefault(); AspNetUserAuthentication auth = new AspNetUserAuthentication(); if (check == null) { auth = new AspNetUserAuthentication() { UserID = aspNetUser.Id, Code = code, CreatedDate = DateTime.Now }; db.AspNetUserAuthentications.Add(auth); db.SaveChanges(); } else { auth = new AspNetUserAuthentication(); auth = db.AspNetUserAuthentications.Where(a => a.UserID == aspNetUser.Id).FirstOrDefault(); auth.Code = code; auth.CreatedDate = DateTime.Now; db.SaveChanges(); } code = "Your two factor authentication code is below \n" + code; EmailManager.SendEmail(code, email, "Two Factor Authentication Code"); //db.SaveChanges(); return new JsonResponse() { Flag = true, Message = "Successfully Sent", ReferenceKey = auth.UserID }; } } catch (Exception ex) { return new JsonResponse() { Flag = false, Message = ex.Message }; } } })); }
public async Task <HttpResponseMessage> PasswordChange(ChangePassword req) { try { SettingDAL dal = new SettingDAL(); //JsonResponse response = await PasswordChanges(req); JsonResponse response = new JsonResponse(); using (MIUEntities db = new MIUEntities()) { try { User user = db.Users.Where(x => x.ID == req.UserID).FirstOrDefault(); if (user == null) { response.Flag = true; response.Message = "User not found."; } else { string Message = ""; if (user.Password == req.CurrentPassword) { if (req.NewPassword == req.ComfirmPassword) { user.Password = req.NewPassword; var AspNetUserID = db.AspNetUsers.Where(x => x.UserName == user.LoginName).Select(x => x.Id).FirstOrDefault(); IdentityResult result = await UserManager.ChangePasswordAsync(AspNetUserID, req.CurrentPassword, req.NewPassword); if (!result.Succeeded) { Message = "Fail to change password!"; } else { db.SaveChanges(); Message = "Update Password Successfully!."; } } else { Message = "New password and confirm password are not same."; } } else { Message = "Current Password is incorrect."; } //db.SaveChanges(); response.Flag = true; response.Message = Message; } } catch (Exception ex) { //return new JsonResponse() { Flag = true, Message = Message }; response.Flag = true; response.Message = ex.Message; } } if (response != null && response.Flag) //if (response) { return(Request.CreateResponse <JsonResponse>(HttpStatusCode.OK, response)); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, MIUWebAPI.Helper.Constants.ErrorNotFound)); } } catch (DbEntityValidationException ex) { var controllerName = ControllerContext.RouteData.Values["controller"].ToString(); var actionName = ControllerContext.RouteData.Values["action"].ToString(); Logger log = new Logger(); log.ErrorLog(ex, controllerName, actionName); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, MIUWebAPI.Helper.Constants.ErrorSysError)); } }