public async Task<ActionResult> IsEmailExist(string UserName) { SAASContext SAASdb = new SAASContext(); var user = SAASdb.Users.Where(c => c.UserName == UserName).FirstOrDefault(); if (user == null) { return Json(user == null ? false : true, JsonRequestBehavior.AllowGet); } //var isuser = Membership.GetUser(UserName); //return Json(isuser == null ? false : true, JsonRequestBehavior.AllowGet); var companyUserManger = ApplicationUserManager.Create(user.RestaurantName); var getuser = companyUserManger.FindByNameAsync(UserName); return Json(getuser == null ? false : true, JsonRequestBehavior.AllowGet); }
public void BroadcastUpdate(object state) { try { SAASContext _db = new SAASContext(); var databaseName = _db.Users.Where(c => c.Approved != null).ToList(); foreach (var item in databaseName) { string databasename = item.RestaurantName; databasename = databasename.Replace(" ", ""); //databasename = "vanfish"; //if (databaseName != null) //{ try { int minToAdd = 15; int checkIfMins = 13; var timeZone = _cache.Get<Setting>(string.Format(CacheKeys.SETTING_BY_NAME_KEY, databasename, "TimeZone"), () => { using (var db = new UsersContext(databasename)) { return db.GetSettingByName("TimeZone"); } }); DateTime defaultClientTime = TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById(timeZone.Value)); if ((defaultClientTime.TimeOfDay.Minutes % 15) == checkIfMins) { var openCloseTimeOfDay = defaultClientTime.DayOfWeek.GetOpenAndCloseTime(databasename); if (openCloseTimeOfDay.OpenTime <= defaultClientTime && defaultClientTime <= openCloseTimeOfDay.CloseTime.AddMinutes(-15)) { using (var db = new UsersContext(databasename)) { List<Reservation> singleTableReservations = null; List<long> conflictedRes = new List<long>(); var allResToday = db.tabReservations.Where(r => !r.IsDeleted && r.ReservationDate == defaultClientTime.Date).ToList(); singleTableReservations = allResToday.Where(r => r.FloorTableId > 0).ToList(); var rejectedStatus = new List<long>() { ReservationStatus.Finished, ReservationStatus.Cancelled }; singleTableReservations = singleTableReservations.Where(r => !rejectedStatus.Contains(r.StatusId.Value)).ToList(); singleTableReservations = singleTableReservations.Where(r => r.TimeForm.AddMinutes(r.Duration.GetMinutesFromDuration()) > defaultClientTime && r.TimeForm.AddMinutes(r.Duration.GetMinutesFromDuration()) < defaultClientTime.AddMinutes(15 - checkIfMins)).ToList(); int resCount = singleTableReservations.Count; decimal processedReservations = 0; if (resCount > 0) _hubContext.Clients.All.startProgress(); foreach (var res in singleTableReservations) { var upcomingReservation = allResToday .FirstOrDefault(r => (r.TimeForm > defaultClientTime && r.TimeForm < defaultClientTime.AddMinutes(minToAdd)) && (r.FloorTableId == 0 ? r.MergedFloorTable.OrigionalTables.Any(t => t.FloorTableId == res.FloorTableId) : r.FloorTableId == res.FloorTableId)); if (upcomingReservation != null) { bool isMergeConflict = (upcomingReservation.FloorTableId == 0); var oldDuration = res.Duration; try { if (!isMergeConflict && TryShiftUpcomingReservationToOtherAvailableTable(db, upcomingReservation)) { try { ExtendReservationDuration(minToAdd, db, res, out oldDuration); _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(RESERVATION_EXTENDED_CONFLICT_RESOLVED_SUCCESSFULLY, res.FloorTable.TableName, res.TimeForm.AddMinutes(oldDuration.GetMinutesFromDuration()).ToShortTimeString(), upcomingReservation.TimeForm.ToShortTimeString(), upcomingReservation.FloorTable.TableName), NotifyType.INFO); } catch (Exception ex) { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(FAILED_TO_EXTEND_RESERVATION, res.FloorTable.TableName, res.TimeForm.AddMinutes(oldDuration.GetMinutesFromDuration()).ToShortTimeString(), ex.Message), NotifyType.ERROR); } } else { if (isMergeConflict) { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(CANNOT_EXTEND_CONFICT_MERGE_RESERVATION, res.FloorTable.TableName, res.TimeForm.AddMinutes(res.Duration.GetMinutesFromDuration()).ToShortTimeString(), upcomingReservation.TimeForm.ToShortTimeString()), NotifyType.ERROR); } else { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(CANNOT_EXTEND_RESERVATION, res.FloorTable.TableName, res.TimeForm.AddMinutes(res.Duration.GetMinutesFromDuration()).ToShortTimeString(), upcomingReservation.TimeForm.ToShortTimeString()), NotifyType.ERROR); } } } catch (Exception ex) { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(FAILED_TO_EXTEND_RESERVATION, res.FloorTable.TableName, res.TimeForm.AddMinutes(res.Duration.GetMinutesFromDuration()).ToShortTimeString(), ex.Message), NotifyType.ERROR); } } else if (res.TimeForm.AddMinutes(res.Duration.GetMinutesFromDuration() + minToAdd) > openCloseTimeOfDay.CloseTime) { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(FAILED_EXCEED_DAY_CLOSE_TIME, res.FloorTable.TableName, res.TimeForm.AddMinutes(res.Duration.GetMinutesFromDuration()).ToShortTimeString()), NotifyType.ERROR); } else { var oldDuration = res.Duration; try { ExtendReservationDuration(minToAdd, db, res, out oldDuration); _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(RESERVATION_EXTENDED_SUCCESSFULLY, res.FloorTable.TableName, res.TimeForm.AddMinutes(oldDuration.GetMinutesFromDuration()).ToShortTimeString()), NotifyType.SUCCESS); } catch (Exception ex) { _hubContext.Clients.Group(databasename).updateEndingReservation( string.Format(FAILED_TO_EXTEND_RESERVATION, res.FloorTable.TableName, res.TimeForm.AddMinutes(oldDuration.GetMinutesFromDuration()).ToShortTimeString(), ex.Message), NotifyType.ERROR); } } processedReservations++; var percent = Convert.ToInt32(Math.Floor((processedReservations / resCount) * 100)); _hubContext.Clients.All.updateProgress(percent); Thread.Sleep(200); } _hubContext.Clients.Group(databasename).updateProgress(100); } } ClearReservationCache(databasename); } } catch (Exception ex) { _hubContext.Clients.Group(databasename).updateEndingReservation(ex.Message, NotifyType.ERROR); } } } catch (Exception ex) { _hubContext.Clients.All.updateEndingReservation(ex.Message, NotifyType.ERROR); } }
public async Task<ActionResult> ForgotPassword(ForgotPasswordModel model) { EmailSender.EmailSender sendEmail = new EmailSender.EmailSender(); string subject = "Forgot Password"; string CC = (string)ConfigurationManager.AppSettings["adminEmail"]; string fromEmail = (string)ConfigurationManager.AppSettings["Email_To"]; string template = string.Empty; SAASContext SAASdb = new SAASContext(); var user = SAASdb.Users.Where(c => c.UserName == model.UserName).FirstOrDefault(); using (StreamReader reader = new StreamReader(System.Web.HttpContext.Current.Server.MapPath("~/EmailTemplates/ForgotPassword.html"))) { template = reader.ReadToEnd(); } var companyUserManger = ApplicationUserManager.Create(user.RestaurantName); var getuser = companyUserManger.FindByName(user.Email); var resetToken = companyUserManger.GeneratePasswordResetToken(getuser.Id); string sitepath = "http://www.mondofi.com/Account/ResetPassword?email=" + model.UserName + "&code=" + resetToken; template = template.Replace("{verifyUrl}", sitepath); sendEmail.SendEmail(subject, template, model.UserName, null, fromEmail, null); return RedirectToAction("EmailSend", "Account"); }