public static bool IsSessionValid(string username, string sessionKey) { int validity = Config.SessionKeyValidity; bool isValid = false; RBSContext db = new RBSContext(); if (!string.IsNullOrEmpty(sessionKey)) { SessionModel ss = db.Sessions.FirstOrDefault(s => s.UserID.Equals(username) && s.SessionKey.Equals(sessionKey)); DateTime ssDt = new DateTime(); if (ss.UpdatedDate.HasValue) { ssDt = ss.UpdatedDate.Value; } else if (ss.CreatedDate.HasValue) { ssDt = ss.CreatedDate.Value; } ssDt = ssDt.AddSeconds(validity); TimeSpan span = DateTime.Now.Subtract(ssDt); TimeSpan validitySpan = TimeSpan.FromSeconds(validity); if (TimeSpan.Compare(span, validitySpan) == -1) // -1: span is shorter than validitySpan, 0: both are equal, 1: span is longer than validitySpan { isValid = true; } } return(isValid); }
private static string getConfig(string key) { string str = string.Empty; RBSContext db = new RBSContext(); ConfigModel config = db.Configs.FirstOrDefault(s => s.Key.Equals(key)); if (config != null) { str = config.Value; } else { Log.Error(context.UserID, "Missing Config", key); } return(str); }
public ActionResult DeleteConfirmed(int id) { MeetingModel meetingModel = db.Meetings.Find(id); if (meetingModel != null) { // Remove the Attendees for the particular meeting first. using (var context = new RBSContext()) { context.Database.ExecuteSqlCommand("DELETE FROM [ParticipantModel] WHERE MeetingID = " + meetingModel.ID); context.SaveChanges(); } db.Meetings.Remove(meetingModel); db.SaveChanges(); } return(RedirectToAction("Index")); }
// Purpose: To be used when password is passed from mobile client. Password is hashed and encrypted with salt. public static bool IsAuthenticated(string username, string passwordFromMobile, string salt) { bool isValid = false; RBSContext db = new RBSContext(); UserModel user = db.Users.FirstOrDefault(s => s.Username.Equals(username)); if (user != null) { // Encrypt with salt string passwordWithSalt = EncryptHashWithSalt(user.Password, salt); // Compare with DB value if (passwordFromMobile.Equals(passwordWithSalt)) { isValid = true; } } return(isValid); }
public ActionResult AddAttendee(string selectedUsers, string selectedDepts) { if (!String.IsNullOrEmpty(selectedUsers) || !String.IsNullOrEmpty(selectedDepts)) { MeetingModel meetingModel = (MeetingModel)Session["Meeting"]; if (meetingModel != null) { List <int> userIds = new List <int>(); if (selectedUsers.Length > 0) { string[] ids = selectedUsers.Trim().Split(','); for (int i = 0; i < ids.Length; i++) { int temp = Convert.ToInt32(ids[i]); userIds.Add(temp); } } else if (selectedDepts.Length > 0) { string tempQuery = "SELECT ID FROM dbo.UserModel WHERE DepartmentID IN (" + selectedDepts + ")"; using (var context = new RBSContext()) { userIds = context.Database.SqlQuery <int>("SELECT ID FROM dbo.UserModel WHERE DepartmentID IN (" + selectedDepts + ")").ToList(); } } if (meetingModel.RecurenceType == 0) { MeetingModel meeting = new MeetingModel(); meeting.RoomID = meetingModel.RoomID; meeting.Title = meetingModel.Title; meeting.Purpose = meetingModel.Purpose; meeting.BookingDate = meetingModel.BookingDate; meeting.StartingTime = meetingModel.StartingTime; meeting.EndingTime = meetingModel.EndingTime; meeting.RecurenceType = meetingModel.RecurenceType; DateTime newStartDate = meetingModel.BookingDate.Value; meeting.SCCStartDate = newStartDate.ToString("yyyy-MM-dd"); meeting.SCCEndDate = meetingModel.SCCEndDate; meeting.CreatedBy = context.UserID; meeting.CreatedDate = DateTime.Now; if (meetingModel.Notification == null) { meeting.Notification = "60"; } else { meeting.Notification = meetingModel.Notification; } meeting.NotificationStatus = "0"; db.Meetings.Add(meeting); db.SaveChanges(); // After saving the db, proceed to add participants foreach (var id in userIds) { ParticipantModel participant = new ParticipantModel(); participant.MeetingID = Convert.ToInt32(meeting.ID); participant.UserID = id; participant.CreatedBy = context.UserID; participant.CreatedDate = DateTime.Now; db.Participants.Add(participant); db.SaveChanges(); } } else { List <DateTime> dates = new List <DateTime>(); DateTime newStartDate = meetingModel.BookingDate.Value; DateTime newEndDate = DateTime.ParseExact(meetingModel.SCCEndDate, "yyyy-MM-dd", CultureInfo.InvariantCulture); if (meetingModel.RecurenceType == 1) { dates = GetOccurrences(newStartDate, newEndDate, OccurrenceRate.Daily); } else if (meetingModel.RecurenceType == 2) { dates = GetOccurrences(newStartDate, newEndDate, OccurrenceRate.Weekly); } else if (meetingModel.RecurenceType == 3) { dates = GetOccurrences(newStartDate, newEndDate, OccurrenceRate.Monthly); } foreach (var date in dates) { MeetingModel meeting = new MeetingModel(); meeting.RoomID = meetingModel.RoomID; meeting.Title = meetingModel.Title; meeting.Purpose = meetingModel.Purpose; meeting.BookingDate = DateTime.ParseExact(date.ToString("yyyy-MM-dd"), "yyyy-MM-dd", CultureInfo.InvariantCulture); meeting.StartingTime = meetingModel.StartingTime; meeting.EndingTime = meetingModel.EndingTime; meeting.RecurenceType = meetingModel.RecurenceType; meeting.SCCStartDate = newStartDate.ToString("yyyy-MM-dd"); meeting.SCCEndDate = meetingModel.SCCEndDate; meeting.CreatedBy = context.UserID; meeting.CreatedDate = DateTime.Now; if (meetingModel.Notification == null) { meeting.Notification = "60"; } else { meeting.Notification = meetingModel.Notification; } meeting.NotificationStatus = "0"; db.Meetings.Add(meeting); db.SaveChanges(); // After saving the db, proceed to add participants foreach (var id in userIds) { ParticipantModel participant = new ParticipantModel(); participant.MeetingID = Convert.ToInt32(meeting.ID); participant.UserID = id; participant.CreatedBy = context.UserID; participant.CreatedDate = DateTime.Now; db.Participants.Add(participant); db.SaveChanges(); } } } // After saving, sending invitation to the participants CreateEmail(meetingModel, userIds); //after saving, sending notification sendNotification(meetingModel, userIds, context.UserID); return(RedirectToAction("Index")); } else { return(RedirectToAction("Create")); } } else { IQueryable <UserModel> users = db.Users.Where(a => a.IsActive == true); List <UserDTO> userList = new List <UserDTO>(); Mapper.Initialize(cfg => cfg.CreateMap <UserModel, UserDTO>()); foreach (UserModel um in users) { um.Department = null; UserDTO newDto = Mapper.Map <UserDTO>(um); userList.Add(newDto); } userList = userList.OrderBy(u => u.Name).ToList(); IQueryable <DepartmentModel> departments = db.Departments.OrderBy(u => u.Name); string userjson = JsonConvert.SerializeObject(userList); string deptjson = JsonConvert.SerializeObject(departments.ToList()); ViewBag.Users = userjson; ViewBag.Departments = deptjson; ViewBag.ErrorMessage = "Please select at least one user or one department."; return(View()); } }