public ActionResult Create([Bind(Include = "MeetingId,BeginDateTime,Name,Location,MapLink")] Meetings meetings) { if (ModelState.IsValid) { db.Meetings.Add(meetings); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(meetings)); }
public ActionResult UploadSolution(SimpleFileView simpleFileView) { if (!Directory.Exists(WebConstants.BasePath + WebConstants.RelativeSolutionsPath)) { Directory.CreateDirectory(WebConstants.BasePath + WebConstants.RelativeSolutionsPath); } if (simpleFileView.UploadedFile == null) { ViewBag.Message = "Ошибка: Выберете файл для загрузки!"; return(View(simpleFileView)); } if (simpleFileView.UploadedFile.ContentLength > 7 * 512 * 1024) // 3.5 MB { ViewBag.Message = "Ошибка: Файл слишком большой! Максимальный размер 3.5 МБ. Попробуйте удалить все бинарные файлы из архива."; return(View(simpleFileView)); } var path = WebConstants.BasePath + WebConstants.RelativeSolutionsPath; var extention = simpleFileView.UploadedFile.FileName.Split('.').Last(); if (extention != "zip") { ViewBag.Message = "Ошибка: вы должны предоставить архив с решением в формате *.zip"; return(View(simpleFileView)); } var expectedFileName = User.Identity.Name + "." + extention; simpleFileView.UploadedFile.SaveAs(path + expectedFileName); var context = new UnityContext(); context.UserProfiles.First(u => u.UserName == User.Identity.Name).SolutionLoaded = WebConstants.GetCurrentTime(); context.SaveChanges(); ViewBag.Message = "Решение было загружено успешно!"; return(View(simpleFileView)); }
public ActionResult SayStatus(string password, bool isOnline) { if (password != WebConstants.WebPassword) { return new ContentResult { Content = "password fail" } } ; var context = new UnityContext(); var status = context.UnityStatus.First(); if (status.Online == isOnline) { return new ContentResult { Content = "already know!" } } ; status.Online = isOnline; if (isOnline) { status.UpTime = WebConstants.GetCurrentTime(); } context.SaveChanges(); return(new ContentResult { Content = "successful" }); }
public ActionResult DeleteGamesByFilter(FormCollection collection) { var gameContext = new UnityContext(); var contextChanged = false; double minutesToDelete; if (double.TryParse(collection["Time"], out minutesToDelete)) { var timeToDeleteFrom = WebConstants.GetCurrentTime() - TimeSpan.FromMinutes(minutesToDelete); var gamesToDeleteByTime = gameContext.GameResults.Where(r => r.Time > timeToDeleteFrom).ToArray(); contextChanged = gamesToDeleteByTime.Length > 0; foreach (var game in gamesToDeleteByTime) { gameContext.GameResults.Remove(game); } } string tag = collection["Tag"]; string subtag = collection["Subtag"]; var gamesToDelete = string.IsNullOrEmpty(subtag) ? gameContext.GameResults.Where(r => r.Type == tag).ToArray() : gameContext.GameResults.Where(r => r.Type == tag && r.Subtype == subtag).ToArray(); contextChanged = contextChanged || gamesToDelete.Length > 0; foreach (var game in gamesToDelete) { gameContext.GameResults.Remove(game); } if (contextChanged) { gameContext.SaveChanges(); } return(View()); }
public ActionResult Register(RegisterModel model) { if (!WebConstants.IsRegistrationAvailable) { return(View()); } if (!ModelState.IsValid) { return(View(model)); } // Attempt to register the user try { if (!RegisterModel.IsCorrectUserName(model.UserName)) { ViewBag.Message = "В имени пользователя допустимы только рус/англ буквы, точка, пробел, земля и дефис."; return(View(model)); } WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email }); var context = new UnityContext(); context.UserProfiles.First(z => z.UserName == model.UserName).CvarcTag = Guid.NewGuid().ToString(); context.SaveChanges(); WebSecurity.Login(model.UserName, model.Password); return(RedirectToAction("Index", "Home")); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult SetAdditionalInfo(string email, string socialLink) { /*Смысл примерно такой: если пользователь указал что-то -- меняем всегда. * Если не указал -- проверяем на то, что он уже не пустой. * Если он уже пустой -- принудительно просим ввести еще раз. * Если нет -- все норм*/ var context = new UnityContext(); var user = context.UserProfiles.First(u => u.UserName == User.Identity.Name); bool changed = false; if (!string.IsNullOrEmpty(email)) { user.Email = email; changed = true; } else if (string.IsNullOrEmpty(user.Email)) { ViewBag.Message = "Вам нужно указать email"; return(View(user)); } if (changed) { context.SaveChanges(); } if (!string.IsNullOrEmpty(socialLink)) { if (!socialLink.StartsWith("http")) { socialLink = "http://" + socialLink; } user.SocialLink = socialLink; changed = true; } else if (string.IsNullOrEmpty(user.SocialLink)) { ViewBag.Message = "Вам нужно указать ссылку на соц сеть"; return(View(user)); } if (changed) { context.SaveChanges(); } return(RedirectToAction("Manage")); }
public ActionResult Create([Bind(Include = "AnnouncementId,Description,Expiration")] Announcements announcements) { try { if (ModelState.IsValid) { db.Announcements.Add(announcements); db.SaveChanges(); return(RedirectToAction("Index")); } } catch (DataException) { ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists contact your administrator."); } return(View(announcements)); }
public ActionResult RecreateCvarcTag() { if (!WebConstants.IsRecreateTagAvailable) { return(RedirectToAction("Manage", new { Message = ManageMessageId.RecreateCvarcTagFail })); } var context = new UnityContext(); context.UserProfiles.First(u => u.UserName == User.Identity.Name).CvarcTag = Guid.NewGuid().ToString(); context.SaveChanges(); return(RedirectToAction("Manage", new { Message = ManageMessageId.RecreateCvarcTagSuccess })); }
public ActionResult Delete(int gameId) { var context = new UnityContext(); var game = context.GameResults.FirstOrDefault(r => r.Id == gameId); if (game == null) { ViewBag.Message = "игра не найдена"; return(RedirectToAction("DeleteGame")); } context.GameResults.Remove(game); context.SaveChanges(); ViewBag.Message = "Игра удалена"; return(RedirectToAction("DeleteGame")); }
public ActionResult RegisterManyUsers(string users) { var splited = users.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries) .Where(l => !string.IsNullOrEmpty(l)).Select(line => line.Split(';')).ToArray(); var uncorrect = splited.Where(s => s.Length < 2 || !RegisterModel.IsCorrectUserName(s[0]) || s[1].Length < 6 || WebSecurity.UserExists(s[0])) .ToArray(); if (uncorrect.Any()) { ViewBag.Message = "Что-то не так(пароль меньше 6 или не указан, в имени некорректные символы, пользователь уже сущ-вует) для пользователей: "; foreach (var value in uncorrect) { ViewBag.Message += string.Join(";", value); } return(View()); } ViewBag.Message = ""; foreach (var value in splited) { ViewBag.Message += WebSecurity.CreateUserAndAccount(value[0], value[1]); } var userNames = splited.Select(s => s[0]); var context = new UnityContext(); foreach (var value in splited) { var name = value[0]; var user = context.UserProfiles.First(u => u.UserName == name); user.CvarcTag = Guid.NewGuid().ToString(); if (value.Length > 2) { user.Email = value[2]; } if (value.Length > 3) { user.SocialLink = value[3]; } } context.SaveChanges(); ViewBag.Message = "Пользователи успешно зарегистрированы"; return(View()); }
public ActionResult CleanUp(FormCollection collection) { if (collection["UserName"] != User.Identity.Name) { ViewBag.Message = "Неверно введено ваше имя пользователя"; return(View()); } var context = new UnityContext(); foreach (var value in context.GameResults) { context.GameResults.Remove(value); } context.SaveChanges(); ViewBag.Message = "Все результаты игр удалены."; return(View()); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return(RedirectToAction("Manage")); } if (ModelState.IsValid) { // Insert a new user into the database using (UnityContext db = new UnityContext()) { UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); db.SaveChanges(); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return(RedirectToLocal(returnUrl)); } else { ModelState.AddModelError("UserName", "Такой пользователь уже существует. Выберете другое имя."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public ActionResult RegisterUser(RegisterModel model) { if (WebSecurity.UserExists(model.UserName)) { ViewBag.Message = "Такой пользователь уже есть!"; return(View(model)); } if (!RegisterModel.IsCorrectUserName(model.UserName)) { ViewBag.Message = "В имени пользователя допустимы только рус/англ буквы, точка, пробел, земля и дефис."; return(View(model)); } WebSecurity.CreateUserAndAccount(model.UserName, model.Password); var context = new UnityContext(); context.UserProfiles.First(z => z.UserName == model.UserName).CvarcTag = Guid.NewGuid().ToString(); context.SaveChanges(); ViewBag.Message = "Аккаунт создан успешно"; return(View()); }
public ActionResult PushResult(GameResultInfo result) { if (result.PushPassword != WebConstants.WebPassword) { return new ContentResult { Content = "Password fail" } } ; var context = new UnityContext(); var users = context.UserProfiles.ToArray(); var tags = users.Select(u => u.CvarcTag).ToArray(); if (result.Players.Length == 2) { if (!tags.Contains(result.Players[0].CvarcTag) || !tags.Contains(result.Players[1].CvarcTag)) { return new ContentResult { Content = "tag fail" } } ; context.GameResults.Add(new GameResults { Time = WebConstants.GetCurrentTime(), LeftPlayerUserName = users.First(u => u.CvarcTag == result.Players[0].CvarcTag).UserName, RightPlayerUserName = users.First(u => u.CvarcTag == result.Players[1].CvarcTag).UserName, LeftPlayerScores = result.Players[0].Score, RightPlayerScores = result.Players[1].Score, LogFileName = result.LogFileName, Type = result.Tag, Subtype = result.Subtag }); context.SaveChanges(); return(new ContentResult { Content = "successful" }); } var player = result.Players[0]; if (!tags.Contains(player.CvarcTag)) { return new ContentResult { Content = "tag fail" } } ; context.GameResults.Add(new GameResults { Time = WebConstants.GetCurrentTime(), LeftPlayerUserName = users.First(u => u.CvarcTag == player.CvarcTag).UserName, LeftPlayerScores = player.Score, LogFileName = result.LogFileName, Type = result.Tag, Subtype = result.Subtag }); context.SaveChanges(); return(new ContentResult { Content = "successful" }); }