public ActionResult Edit(string id) { ViewBag.ReturnUrl = Request.UrlReferrer == null ? "/Challenge" : Request.UrlReferrer.AbsoluteUri; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); if (string.IsNullOrEmpty(id)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var challenge = RepositoryProvider.Get <ChallengeRepository>().GetById(Guid.Parse(id)); if (challenge == null) { return(HttpNotFound()); } var editChallenge = new EditChallengeBindingModel() { ChallengeId = challenge.ChallengeId, Name = challenge.Name, Count = challenge.Count, Description = challenge.Description, DueDate = challenge.DueDate.ToLocalTime(), //FrequencyValue = challenge.FrequencyValue, //FrequencyCount = challenge.FrequencyCount, PictureUrl = challenge.Picture, GroupIds = challenge.Groups.Any() ? challenge.Groups.Select(p => p.GroupId.ToString()).ToArray() : null }; Enums.ChallengeStatus challengeStatus; editChallenge.Status = Enum.TryParse(challenge.Status, out challengeStatus) ? challengeStatus : Enums.ChallengeStatus.Draft; Enums.ChallengeType challengeType; editChallenge.Type = Enum.TryParse(challenge.Type, out challengeType) ? challengeType : Enums.ChallengeType.Group; //Enums.FrequencyType frequencyType; //editChallenge.FrequencyType = Enum.TryParse(challenge.FrequencyType, out frequencyType) // ? frequencyType // : Enums.FrequencyType.ByDay; return(View(editChallenge)); }
public async Task <ActionResult> Create( [Bind(Include = "Name,Type,Count,Description,DueDate,Status,GroupIds,Picture")] EditChallengeBindingModel model) { //FrequencyValue,FrequencyCount,FrequencyType, if (ModelState.IsValid) { //var challenge = // RepositoryProvider.Get<ChallengeRepository>() // .FirstOrDefault(p => p.Name.ToUpper() == model.Name.ToUpper()); //if (challenge != null) //{ // ModelState.AddModelError("", "Challenge has been used."); // ViewBag.ReturnUrl = string.IsNullOrEmpty(Request.QueryString["returnUrl"]) // ? "/Challenge" // : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]); //} //else { var challenge = new Challenge() { ChallengeId = Guid.NewGuid(), Name = model.Name, Count = model.Count, Description = model.Description, DueDate = model.DueDate.AddDays(1).AddSeconds(-1).ToUniversalTime(), FrequencyValue = 0, //model.FrequencyValue, FrequencyCount = 0, //model.FrequencyCount, CreateDate = DateTime.UtcNow, CreatorId = CurrentAccess.UserId, Type = model.Type.ToString(), Status = model.Status.ToString(), FrequencyType = Enums.FrequencyType.ByDay.ToString(), // model.FrequencyType.ToString(), Order = RepositoryProvider.Get <ChallengeRepository>().GetNextOrder() }; if (model.GroupIds != null && model.GroupIds.Length > 0) { foreach (var gId in model.GroupIds) { Guid id = Guid.Parse(gId); var group = RepositoryProvider.Get <GroupRepository>() .FirstOrDefault(p => p.GroupId == id); if (group != null) { challenge.Groups.Add(group); } } } if (model.Picture != null && model.Picture.ContentLength > 0) { var stream = new MemoryStream(); ImageHelper.Resize(model.Picture.InputStream, stream, 300, ImageFormat.Jpeg); var azureStorageHelper = new AzureStorageHelper(ConfigHelper.AzureStorageConnectionString); var newPicture = await azureStorageHelper.SaveFileStream(stream, Guid.NewGuid() + ".jpg", AzureStorageHelper.FileUsage.UserPhotos); challenge.Picture = newPicture; } RepositoryProvider.Get <ChallengeRepository>().Insert(challenge); RepositoryProvider.Save(); return (Redirect(string.IsNullOrEmpty(Request.QueryString["returnUrl"]) ? "/Challenge" : HttpUtility.UrlDecode(Request.QueryString["returnUrl"]))); } } ViewBag.ReturnUrl = Request.QueryString["returnUrl"]; ViewBag.Groups = RepositoryProvider.Get <GroupRepository>().Get().ToList(); return(View(model)); }