public static ResponseDTO IsProfileFill(IApartmenthostContext context, string userId, bool checkPhone = false) { var user = context.Users.SingleOrDefault(x => x.Id == userId); var profile = context.Profile.SingleOrDefault(x => x.Id == userId); if (user == null || profile == null) { return(RespH.Create(RespH.SRV_USER_NOTFOUND)); } if (user.Blocked) { return(RespH.Create(RespH.SRV_USER_BLOCKED)); } if (!user.EmailConfirmed) { return(RespH.Create(RespH.SRV_USER_NOT_CONFIRMED)); } if (string.IsNullOrWhiteSpace(profile.FirstName)) { return(RespH.Create(RespH.SRV_USER_NO_NAME)); } if (checkPhone) { if (user.PhoneStatus != ConstVals.PConf) { return(RespH.Create(RespH.SRV_CARD_PHONE_UNCONF)); } } return(null); }
public static void Create(IApartmenthostContext context, string userId, string type, string code, string favoriteId = null, string reservationId = null, string reviewId = null) { try { var notif = new Notification { Id = Guid.NewGuid().ToString(), UserId = userId, Type = type, Code = code, Readed = false }; if (!string.IsNullOrEmpty(favoriteId)) { notif.FavoriteId = favoriteId; } if (!string.IsNullOrEmpty(reservationId)) { notif.ReservationId = reservationId; } if (!string.IsNullOrEmpty(reviewId)) { notif.ReviewId = reviewId; } context.Notifications.Add(notif); context.SaveChanges(); } catch (Exception e) { Debug.WriteLine("!!!!!CREATING NOTIFICATION EXCEPTION!!!!!!"); Debug.WriteLine(e); } }
public static ResponseDTO IsCardNameExist(IApartmenthostContext context, string name, string errType) { var currentAdvertCount = context.Cards.Count(a => a.Name == name); if (currentAdvertCount > 0) { var respList = new List <string>(); respList.Add(name); return(RespH.Create(RespH.SRV_CARD_EXISTS, respList)); } return(null); }
public FavoriteApiController(IApartmenthostContext context) { _context = context; }
public FeedbackApiController(IApartmenthostContext context) { _context = context; }
public PictureApiController(IApartmenthostContext context) { _context = context; }
public ApartmentApiController(IApartmenthostContext context) { _context = context; }
public NotificationApiController(IApartmenthostContext context) { _context = context; }
public static void CreateAccount(IApartmenthostContext context, string providerName, string providerId, string accountId, string email = null, string name = null) { var account = context.Accounts.SingleOrDefault( a => a.Provider == providerName && a.ProviderId == providerId && a.AccountId == accountId); if (account == null) { User user = null; if (!string.IsNullOrEmpty(email)) { user = context.Users.SingleOrDefault(u => u.Email == email); } if (providerName != StandartLoginProvider.ProviderName) { if (user == null) { user = new User { Id = SequentialGuid.NewGuid().ToString(), Email = email, EmailConfirmed = email != null, PhoneStatus = ConstVals.PUnconf, Salt = GenerateSalt() }; context.Users.Add(user); } else { user.EmailConfirmed = email != null; } context.SaveChanges(); } account = new Account { Id = SequentialGuid.NewGuid().ToString(), UserId = user.Id, AccountId = accountId, Provider = providerName, ProviderId = providerId }; context.Accounts.Add(account); context.SaveChanges(); var profile = context.Profile.SingleOrDefault(p => p.Id == user.Id); if (profile == null) { profile = new Profile { Id = user.Id }; if (name != null) { string[] names = name.Split(' '); if (names.Length == 1) { profile.FirstName = name; } if (names.Length > 1) { profile.FirstName = names[0]; profile.LastName = names[1]; } } context.Profile.Add(profile); } context.SaveChanges(); } }
public static Account GetUserAccount(IApartmenthostContext context, ServiceUser user) { return(context.Accounts.SingleOrDefault(a => a.AccountId == user.Id)); }
public StandartLoginController(IApartmenthostContext context) { _context = context; }
/// <summary> /// </summary> /// <param name="context"></param> /// <param name="basemessage"></param> public async void Create(IApartmenthostContext context, BaseEmailMessage basemessage) { try { // Сообщение SendGrid SendGridMessage message = new SendGridMessage(); // Шаблонизатор var emailFactory = new MergedEmailFactory(new TemplateParser()); // Считываем глобальные настройки var fromAddress = Environment.GetEnvironmentVariable("EMAIL_FROM_ADDRESS"); var from = Environment.GetEnvironmentVariable("EMAIL_FROM"); var webDomain = Environment.GetEnvironmentVariable("WEB_DOMAIN"); // Отправитель message.From = new MailAddress(fromAddress, from); // Получатель message.AddTo(basemessage.ToUserEmail); // Глобальный HTML шаблон письма StringBuilder htmlTemplate = new StringBuilder(); var templArt = context.Article.SingleOrDefault(x => x.Name == ConstVals.EmailTemplate && x.Type == ConstVals.Email); htmlTemplate.Append(templArt.Text); // Приветстиве пользователя var greetArt = context.Article.SingleOrDefault(x => x.Name == ConstVals.Greet && x.Type == ConstVals.Email); var greetTv = new Dictionary <string, string> { { "username", basemessage.ToUserName } }; MailMessage greetMsg = emailFactory .WithTokenValues(greetTv) .WithHtmlBody(greetArt.Text).Create(); // HTML шаблон основного тела письма StringBuilder bodyTemplate = new StringBuilder(); var bodyTemplateTv = new Dictionary <string, string>(); var bodyTokenValues = new Dictionary <string, string>(); // Считывание шаблона if (!string.IsNullOrEmpty(basemessage.Code)) { var article = context.Article.SingleOrDefault(x => x.Name == basemessage.Code && x.Type == ConstVals.Email); if (article != null) { message.Subject = article.Title; bodyTemplate.Append(article.Text); } } var dateformat = "dd.MM.yyyy"; switch (basemessage.Code) { case RespH.SRV_NOTIF_CARD_FAVORITED: bodyTokenValues.Add("username", basemessage.FromUserName); bodyTokenValues.Add("url", webDomain + "#/posts/" + basemessage.CardId); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_RESERV_NEW: bodyTokenValues.Add("username", basemessage.FromUserName); bodyTokenValues.Add("cardname", basemessage.CardName); bodyTokenValues.Add("cardtype", basemessage.CardType); bodyTokenValues.Add("carddesc", basemessage.CardDescription); bodyTokenValues.Add("datefrom", basemessage.DateFrom.ToString(dateformat)); bodyTokenValues.Add("dateto", basemessage.DateTo.ToString(dateformat)); bodyTokenValues.Add("url", webDomain + "#/posts/" + basemessage.CardId); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_RESERV_PENDING: bodyTokenValues.Add("ownername", basemessage.FromUserName); bodyTokenValues.Add("cardname", basemessage.CardName); bodyTokenValues.Add("cardtype", basemessage.CardType); bodyTokenValues.Add("carddesc", basemessage.CardDescription); bodyTokenValues.Add("datefrom", basemessage.DateFrom.ToString(dateformat)); bodyTokenValues.Add("dateto", basemessage.DateTo.ToString(dateformat)); bodyTokenValues.Add("url", webDomain + "#/posts/" + basemessage.CardId); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_RESERV_ACCEPTED: bodyTokenValues.Add("ownername", basemessage.FromUserName); bodyTokenValues.Add("cardname", basemessage.CardName); bodyTokenValues.Add("cardtype", basemessage.CardType); bodyTokenValues.Add("carddesc", basemessage.CardDescription); bodyTokenValues.Add("datefrom", basemessage.DateFrom.ToString(dateformat)); bodyTokenValues.Add("dateto", basemessage.DateTo.ToString(dateformat)); bodyTokenValues.Add("url", webDomain + "#/posts/" + basemessage.CardId); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_RESERV_DECLINED: bodyTokenValues.Add("ownername", basemessage.FromUserName); bodyTokenValues.Add("cardname", basemessage.CardName); bodyTokenValues.Add("cardtype", basemessage.CardType); bodyTokenValues.Add("carddesc", basemessage.CardDescription); bodyTokenValues.Add("datefrom", basemessage.DateFrom.ToString(dateformat)); bodyTokenValues.Add("dateto", basemessage.DateTo.ToString(dateformat)); bodyTokenValues.Add("url", webDomain + "#/posts/" + basemessage.CardId); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_REVIEW_ADDED: bodyTokenValues.Add("username", basemessage.FromUserName); bodyTokenValues.Add("reviewtext", basemessage.ReviewText); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_REVIEW_RATING_ADDED: bodyTokenValues.Add("username", basemessage.FromUserName); bodyTokenValues.Add("reviewtext", basemessage.ReviewText); bodyTokenValues.Add("reviewrating", basemessage.ReviewRating.ToString(CultureInfo.InvariantCulture)); bodyTokenValues.Add("unsubUrl", webDomain + "#/unsubscr?type=notifications&code=" + basemessage.UnsubscrCode); break; case RespH.SRV_NOTIF_REVIEW_AVAILABLE: bodyTokenValues.Add("cardname", basemessage.CardName); bodyTokenValues.Add("carddesc", basemessage.CardDescription); bodyTokenValues.Add("datefrom", basemessage.DateFrom.ToString(dateformat)); bodyTokenValues.Add("dateto", basemessage.DateTo.ToString(dateformat)); break; case ConstVals.Reg: bodyTokenValues.Add("code", basemessage.ConfirmCode); bodyTokenValues.Add("url", webDomain + "#/confirm?userId=" + basemessage.ToUserId + "&code=" + basemessage.ConfirmCode); break; case ConstVals.Restore: bodyTokenValues.Add("code", basemessage.ConfirmCode); bodyTokenValues.Add("url", webDomain + "#/reset?userId=" + basemessage.ToUserId + "&code=" + basemessage.ConfirmCode); break; case ConstVals.Feedback: case ConstVals.Abuse: bodyTokenValues.Add("username", basemessage.FromUserName); bodyTokenValues.Add("text", basemessage.Text); if (!string.IsNullOrWhiteSpace(basemessage.FromUserEmail) && basemessage.AnswerByEmail) { bodyTokenValues.Add("email", basemessage.FromUserEmail); } else { bodyTokenValues.Add("email", "не указан"); } break; } // Формируем основное тело emailFactory = new MergedEmailFactory(new TemplateParser()); var bodyMsg = emailFactory .WithTokenValues(bodyTokenValues) .WithHtmlBody(bodyTemplate.ToString()) .Create(); // Соединяем все вместе StringBuilder fullEmail = new StringBuilder(); fullEmail.Append(greetMsg.Body); fullEmail.Append("<br><br>"); fullEmail.Append(bodyMsg.Body); bodyTemplateTv.Add("content", fullEmail.ToString()); emailFactory = new MergedEmailFactory(new TemplateParser()); MailMessage fullMailMessage = emailFactory.WithTokenValues(bodyTemplateTv) .WithHtmlBody(htmlTemplate.ToString()) .Create(); message.Html = fullMailMessage.Body; // Отслеживание переходов из письма message.EnableClickTracking(true); await Send(message); } catch (InvalidApiRequestException e) { Debug.WriteLine("!!!!!Invalid Api Request Exception!!!!!!"); foreach (var err in e.Errors) { Debug.WriteLine(err); } } catch (Exception e) { Debug.WriteLine("!!!!!SEND EMAIL EXCEPTION!!!!!!"); Debug.WriteLine(e); } }
public UserApiController() { _context = new ApartmenthostContext(); }
public TestArticleController() { _testContext = new TestContext(); _testDb = new TestDbPopulator(_testContext); }
public StandartRegistrationController(IApartmenthostContext context) { _context = context; }
public ReservationApiController(IApartmenthostContext context) { _context = context; }
public ProfileApiController(IApartmenthostContext context) { _context = context; }