public async Task<ActionResult> Create(Project project) { try { ProjectsRepository projectRepository = new ProjectsRepository(); var result = await projectRepository.CreateProject(project); return RedirectToAction("Index", "Home"); } catch (RedirectRequiredException x) { return Redirect(x.RedirectUri.ToString()); } }
public async Task<Project> CreateProject(Project project) { StringBuilder requestUri = new StringBuilder() .Append(this.SiteUrl) .Append("/_api/web/lists/getbyTitle('") .Append(this.ProjectsListName) .Append("')/items"); XElement entry = project.ToXElement((string)base.GetFromCache(this.ProjectsListName)); StringContent requestContent = new StringContent(entry.ToString()); HttpResponseMessage response = await this.Post(requestUri.ToString(), requestContent); string responseString = await response.Content.ReadAsStringAsync(); return XElement.Parse(responseString).ToProject(); }
public async Task<ActionResult> Delete(Project project) { try { ProjectsRepository repository = new ProjectsRepository(); if (await repository.DeleteProject(project.Id, project.__eTag)) { return RedirectToAction("Index", "Home"); } else { return View(project); } } catch (RedirectRequiredException x) { return Redirect(x.RedirectUri.ToString()); } }
public async Task<ActionResult> Edit(Project project) { try { ProjectsRepository repository = new ProjectsRepository(); if (await repository.UpdateProject(project)) { return RedirectToAction("View", "Home", new { projectId = project.Id }); } else { return View(project); } } catch (RedirectRequiredException x) { return Redirect(x.RedirectUri.ToString()); } }
public async Task<bool> UpdateProject(Project project) { StringBuilder requestUri = new StringBuilder() .Append(this.SiteUrl) .Append("/_api/web/lists/getbyTitle('") .Append(this.ProjectsListName) .Append("')/getItemByStringId('") .Append(project.Id.ToString()) .Append("')"); XElement entry = project.ToXElement((string)base.GetFromCache(this.ProjectsListName)); StringContent requestContent = new StringContent(entry.ToString()); HttpResponseMessage response = await this.Patch(requestUri.ToString(), project.__eTag, requestContent); return response.IsSuccessStatusCode; }