using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using MvcBug.Models;
namespace MvcBug.Controllers
{
public class TaskController : Controller
{
private DataManager _dataManager;
public TaskController(DataManager datamanager)
{
_dataManager = datamanager;
}
public ActionResult List()
{
ViewData["Title"] = "Task List";
ViewData["Tasks"] = _dataManager.Tasks.GetTasks();
return View();
}
public ActionResult Task(int id)
{
ViewData.Model = _dataManager.Tasks.GetTask(id);
return View();
}
public ActionResult Delete(int id)
{
_dataManager.Tasks.DeleteTask(id);
return RedirectToAction("List");
}
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit(int id)
{
Task t = _dataManager.Tasks.GetTask(id);
ViewData.Model = t;
SetEditLists(t);
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Task t)
{
if (t.Title.Length < 3)
{
ModelState.AddModelError("Title", "Title should be more than 3 chracteres");
}
if (t.Text.Length <= 10)
{
ModelState.AddModelError("Text", "Text should be more than 3 chracteres");
}
if (ModelState.IsValid)
{
t.TaskId = id;
_dataManager.Tasks.UpdateTask(t);
return RedirectToAction("List");
}
SetEditLists(t);
return View();
}
private void SetEditLists(Task t)
{
ViewData["States"] = new SelectList(_dataManager.States.GetStates(), "StateId", "Title", t.StateId);
ViewData["Users"] = new SelectList(_dataManager.Membership.GetUsers(), "ProviderUserKey", "UserName", t.AssignedOn);
}
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult SearchBySomeText(string Text)
{
if (Request.IsAjaxRequest())
{
ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
return View("Search");
}
else // for not ajax Search
{
ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
return View("Search");
}
}
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult SearchByTextWithParams(string Text)
{
if (Request.IsAjaxRequest())
{
ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
return View("Search");
}
else // for not ajax Search
{
ViewData["SearchResults"] = _dataManager.Tasks.GetTasks();
return View("Search");
}
}
public ActionResult Index()
{
return View("Search");
}
}
}