public ActionResult CreateTask(IFormCollection collection) { try { var Task = new Models.Data.Task(); var Task2 = new Models.Data.Task(); var node = new Models.Data.PriorityNode <Models.Data.Task>(); { Task.Developer = currentDeveloper; Task.Title = collection["Title"]; Task.Description = collection["Description"]; Task.Project = collection["Project"]; Task.Priority = Convert.ToInt32(collection["Priority"]); Task.Date = collection["Date"]; Task2.Title = Task.Title; Task.Developer = currentDeveloper; }; node.Data = Task; node.prioridad = Task.Priority; WriteTasksHashtable(Task); Singleton.Instance.TaskHashtable.Add(Task.Title, Task); Singleton.Instance.TaskIndex.insert(Task2, Task.Priority); Singleton.Instance.heap.Add(node); refreshAllTasks = true; Message("Task added to queue"); return(RedirectToAction(nameof(DeveloperTasks))); } catch { return(View()); } }
public ActionResult DeleteTask(string id, IFormCollection collection) { var heap = Singleton.Instance.heap; var hashtable = Singleton.Instance.TaskHashtable; var newTask = new Models.Data.Task(); try { for (int i = 0; i < heap.elements.Count; i++) { if (heap.elements[i].Data.Developer == currentDeveloper) { if (heap.elements[i].Data.Title == id) { var node = new Models.Data.PriorityNode <Models.Data.Task>(); node = heap.elements[i]; string key = heap.elements[i].Data.Title; Singleton.Instance.heap.Delete(node); Singleton.Instance.TaskHashtable.Remove(key); deleted = true; break; } } } csvTasksHash = ""; TextWriter writer = new StreamWriter($"{hostingEnvironment.WebRootPath}\\csv\\tasks.csv"); for (int i = 0; i < heap.elements.Count; i++) { string key = heap.elements[i].Data.Title; var Task = new Models.Data.Task(); Task = hashtable.GetNode(key); csvTasksHash += $"{Task.Developer},{Task.Title},{Task.Description},{Task.Project},{Task.Priority},{Task.Date}\n"; } writer.Write(csvTasksHash); writer.Close(); Message("Task deleted"); return(RedirectToAction(nameof(DeveloperTasks))); } catch { return(View()); } }
public void ReadTasksHashtable() { try { string[] lines = System.IO.File.ReadAllLines($"{hostingEnvironment.WebRootPath}\\csv\\tasks.csv"); TextReader reader = new StreamReader($"{hostingEnvironment.WebRootPath}\\csv\\tasks.csv"); TextFieldParser csvReader = new TextFieldParser(reader); csvReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited; csvReader.SetDelimiters(","); csvReader.HasFieldsEnclosedInQuotes = true; string[] fields; while (!csvReader.EndOfData) { try { fields = csvReader.ReadFields(); var newTask = new Models.Data.Task(); var node = new Models.Data.PriorityNode <Models.Data.Task>(); newTask.Developer = fields[0]; newTask.Title = fields[1]; newTask.Description = fields[2]; newTask.Project = fields[3]; newTask.Priority = Convert.ToInt32(fields[4]); newTask.Date = fields[5]; csvTasksHash += $"{fields[0]},{fields[1]},{fields[2]},{fields[3]},{fields[4]},{fields[5]}\n"; node.Data = newTask; node.prioridad = newTask.Priority; Singleton.Instance.TaskHashtable.Add(newTask.Title, newTask); Singleton.Instance.heap.Add(node); } catch { } } reader.Close(); } catch (Exception e) { throw new Exception(e.Message); } }