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);
            }
        }