From 2ba9d3a452096896f525708eb0e238fcbcdaa66d Mon Sep 17 00:00:00 2001 From: Suren Date: Mon, 27 Jun 2022 14:13:55 +0300 Subject: [PATCH 1/3] Fisrt try --- CommandParser.cs | 64 +++++++++++++++ Methods.cs | 197 ++++++++++++++++++++++++++++++++++++++++++++++ Program.cs | 12 +++ Task.cs | 43 ++++++++++ sectreborn.csproj | 10 +++ 5 files changed, 326 insertions(+) create mode 100644 CommandParser.cs create mode 100644 Methods.cs create mode 100644 Program.cs create mode 100644 Task.cs create mode 100644 sectreborn.csproj diff --git a/CommandParser.cs b/CommandParser.cs new file mode 100644 index 0000000..c03ce1c --- /dev/null +++ b/CommandParser.cs @@ -0,0 +1,64 @@ +using System.Text.Json; +namespace SectTask; + +public class CommandParser +{ + public void Commands(string?[] args) + { + Methods td = new Methods(); + for (int i = 0; i < args.Length - 1; ++i) + { + try + { + switch (args[i]) + { + case "/add": + SubTask sub = new SubTask(Convert.ToBoolean(args[i + 1]), args[i + 2], args [i + 3]); + td.AddTask(Convert.ToInt32(args[i + 4]), sub,Convert.ToDateTime(args[i + 5]),Convert.ToBoolean(args[i + 6])); + break; + case "/all": + td.ShowTasks(); + break; + case "/delete": + td.DeleteTask(Convert.ToInt32(args[i + 1])); + break; + case "/save": + td.toFile(args[i + 1]); + break; + case "/load": + td.fromFile(args[i + 1]); + break; + case "/completed": + td.ChangeStatus(Convert.ToInt32(args[i + 1])); + break; + case "/create-group": + td.CreateGroup(Convert.ToInt32(args[i + 1])); + break; + case "/delete-group": + td.DeleteGroup(Convert.ToInt32(args[i + 1])); + break; + case "/add-to-group": + td.AddToGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); + break; + case "/delete-from-group": + td.DeleteFromGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); + break; + case "/add-subtask": + SubTask sub1 = new SubTask(Convert.ToBoolean(args[i + 1]), args[i + 2], args [i + 3]); + td.AddSubTask(Convert.ToInt32(args[i + 2]), sub1 ); + break; + case "/change-sub-status": + td.ChangeSubStatus(Convert.ToInt32(args[i + 1])); + break; + case "/today": + td.DayCheck(); + break; + } + } + catch (ArgumentException ep) + { + Console.WriteLine(ep.Message); + } + } + } +} \ No newline at end of file diff --git a/Methods.cs b/Methods.cs new file mode 100644 index 0000000..df559d3 --- /dev/null +++ b/Methods.cs @@ -0,0 +1,197 @@ +namespace SectTask; +using System.Text.Json; + +public class Methods +{ + private List _taskData = new List(); + private List _groupData = new List(); + private List _subData = new List(); + + public void AddTask(int id, SubTask sub, DateTime deadline, bool complete) + { + _taskData.Add(new Task() {TaskId = id, Sub = sub, DeadLine = deadline, TaskStatus = complete} ); + Console.WriteLine("Task Created!"); + } + + public void AddSubTask(int Taskid, SubTask sub) + { + foreach (var t in _taskData.Where(t => t!.TaskId == Taskid)) + { + t!.Sub = sub; + } + + Console.WriteLine("SubTask Created!"); + } + + public void ChangeSubStatus(int id) + { + foreach (var t in _subData.Where(t => t!.SubStatus == false)) + { + t!.SubStatus = true; + } + Console.WriteLine("Status Changed!"); + } + public void ShowTasks() + { + foreach (var t in _taskData) + { + Console.WriteLine(t!.TaskId); + Console.WriteLine(t!.TaskStatus); + var json = JsonSerializer.Serialize(t?.Sub); + var json1 = JsonSerializer.Serialize(t?.DeadLine); + Console.WriteLine(json); + Console.WriteLine(json1); + } + } + + public void ShowTasks(int id) + { + foreach (var t in _taskData) + { + if (t!.TaskId == id){ + Console.WriteLine(t!.TaskId); + Console.WriteLine(t!.TaskStatus); + var json = JsonSerializer.Serialize(t?.Sub); + var json1 = JsonSerializer.Serialize(t?.DeadLine); + Console.WriteLine(json); + Console.WriteLine(json1); + } + else + { + Console.WriteLine("Wrong Id"); + } + } + } + + public void DeleteTask(int id) + { + for (var i = 0; i < _taskData.Count; ++i) + { + if (_taskData[i]!.TaskId == id) + { + _taskData.Remove(_taskData[i]); + } + } + } + + public void ChangeStatus(int id) + { + foreach (var t in _taskData.Where(t => t!.TaskStatus == false)) + { + t!.TaskStatus = true; + } + Console.WriteLine("Status Changed!"); + } + + public void toFile(string? ph) + { + var str = new StreamWriter(ph!); + foreach (var t in _taskData) + { + str.WriteLine(t!.TaskId); + str.WriteLine(t!.TaskStatus); + var json = JsonSerializer.Serialize(t?.Sub); + var json1 = JsonSerializer.Serialize(t?.DeadLine); + str.WriteLine(json); + str.WriteLine(json1); + } + str.Close(); + } + + public void fromFile(string? ph) + { + if (File.Exists(ph)) + { + using StreamReader reader = new StreamReader(ph); + _taskData.Clear(); + for (int i = 0; i < System.IO.File.ReadAllLines(ph).Length; ++i) + { + string? json = reader.ReadLine(); + if (json != null) _taskData.Add(JsonSerializer.Deserialize(json)); + } + } + else + { + Console.WriteLine("File not found"); + } + } + + public void DayCheck() + { + foreach (var json in from t in _taskData where t!.DeadLine.Day == DateTime.Now.Day select JsonSerializer.Serialize(t)) + { + Console.WriteLine(json); + } + } + + public void CreateGroup(int id) + { + _groupData.Add(new Group(){GroupId = id,Tasks = null}); + } + + public void AddToGroup(int Taskid, int Groupid) + { + foreach (var t in _taskData.Where(t => t!.TaskId == Taskid)) + { + foreach (var t1 in _groupData.Where(t1 => t1!.GroupId == Groupid)) + { + t1!.Tasks = t; + } + } + } + + public void ShowGroup() + { + foreach (var t in _groupData) + { + var json = JsonSerializer.Serialize(t!.GroupId); + var json1 = JsonSerializer.Serialize(t!.Tasks); + if (json == "null") + { + Console.Write(""); + } + else + { + Console.WriteLine(json); + } + if (json1 == "null") + { + Console.Write(""); + } + else + { + Console.WriteLine(json1); + } + } + } + + public void DeleteGroup(int id) + { + foreach (var t in _groupData) + { + if (t!.GroupId == id) + { + t.Tasks = null; + t.GroupId = null; + } + } + } + + public void DeleteFromGroup(int Groupid, int Taskid) + { + for (int i = 0; i < _groupData.Count; ++i) + { + if (_groupData[i]!.GroupId == Groupid) + { + for (int j = 0; j < _taskData.Count; ++j) + { + if (_taskData[j]!.TaskId == Taskid) + { + _groupData[i]!.Tasks = null; + } + } + } + } + } + +} \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..4616622 --- /dev/null +++ b/Program.cs @@ -0,0 +1,12 @@ +using System.ComponentModel.Design.Serialization; + +namespace SectTask; + +static class Program +{ + static void Main(string?[] args) + { + CommandParser input = new CommandParser(); + input.Commands(args); + } +} \ No newline at end of file diff --git a/Task.cs b/Task.cs new file mode 100644 index 0000000..c2170e7 --- /dev/null +++ b/Task.cs @@ -0,0 +1,43 @@ +namespace SectTask; + +public class SubTask +{ + public bool SubStatus { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } + + public SubTask(bool complete, string? name, string? description) + { + SubStatus = complete; + Name = name; + Description = description; + } + +} + +public class Task +{ + public SubTask Sub; + public int TaskId { get; set; } + + public bool TaskStatus { get; set; } + public DateTime DeadLine { get; set; } // 01.01.0001 0:00:00 + + public Task(int id, SubTask sub, DateTime deadline, bool status) + { + TaskId = id; + Sub = sub; + DeadLine = deadline; + TaskStatus = status; + } + + public Task() { } +} + +public class Group +{ + public Task? Tasks; + public int? GroupId { get; set; } +} \ No newline at end of file diff --git a/sectreborn.csproj b/sectreborn.csproj new file mode 100644 index 0000000..b9de063 --- /dev/null +++ b/sectreborn.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + From dbcc92e2ee265ab02dab6d6222d9008672c72a7f Mon Sep 17 00:00:00 2001 From: Suren Date: Tue, 28 Jun 2022 22:18:08 +0300 Subject: [PATCH 2/3] Totally upgrade --- CommandParser.cs | 99 ++++++++++++------------- Group.cs | 13 ++++ Methods.cs | 189 +++++++++++++++++++++-------------------------- Program.cs | 35 ++++++++- SubTask.cs | 22 ++++++ Task.cs | 33 +-------- sectreborn.sln | 16 ++++ 7 files changed, 219 insertions(+), 188 deletions(-) create mode 100644 Group.cs create mode 100644 SubTask.cs create mode 100644 sectreborn.sln diff --git a/CommandParser.cs b/CommandParser.cs index c03ce1c..86e5c78 100644 --- a/CommandParser.cs +++ b/CommandParser.cs @@ -1,63 +1,58 @@ -using System.Text.Json; namespace SectTask; public class CommandParser { public void Commands(string?[] args) { - Methods td = new Methods(); + TaskManager td = new TaskManager(); for (int i = 0; i < args.Length - 1; ++i) { - try - { - switch (args[i]) - { - case "/add": - SubTask sub = new SubTask(Convert.ToBoolean(args[i + 1]), args[i + 2], args [i + 3]); - td.AddTask(Convert.ToInt32(args[i + 4]), sub,Convert.ToDateTime(args[i + 5]),Convert.ToBoolean(args[i + 6])); - break; - case "/all": - td.ShowTasks(); - break; - case "/delete": - td.DeleteTask(Convert.ToInt32(args[i + 1])); - break; - case "/save": - td.toFile(args[i + 1]); - break; - case "/load": - td.fromFile(args[i + 1]); - break; - case "/completed": - td.ChangeStatus(Convert.ToInt32(args[i + 1])); - break; - case "/create-group": - td.CreateGroup(Convert.ToInt32(args[i + 1])); - break; - case "/delete-group": - td.DeleteGroup(Convert.ToInt32(args[i + 1])); - break; - case "/add-to-group": - td.AddToGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); - break; - case "/delete-from-group": - td.DeleteFromGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); - break; - case "/add-subtask": - SubTask sub1 = new SubTask(Convert.ToBoolean(args[i + 1]), args[i + 2], args [i + 3]); - td.AddSubTask(Convert.ToInt32(args[i + 2]), sub1 ); - break; - case "/change-sub-status": - td.ChangeSubStatus(Convert.ToInt32(args[i + 1])); - break; - case "/today": - td.DayCheck(); - break; - } - } - catch (ArgumentException ep) - { - Console.WriteLine(ep.Message); + if (args[i] is null) + { + return; + } + switch (args[i]) + { + case "/add": + td.AddTask(Convert.ToInt32(args[i + 4]), Convert.ToDateTime(args[i + 5]),Convert.ToBoolean(args[i + 6])); + break; + case "/all": + td.ShowTasks(); + break; + case "/delete": + td.DeleteTask(Convert.ToInt32(args[i + 1])); + break; + case "/save": + td.toFile(args[i + 1]); + break; + case "/load": + td.fromFile(args[i + 1]); + break; + case "/completed": + td.ChangeTaskStatus(Convert.ToInt32(args[i + 1]), Convert.ToBoolean(args[i + 2])); + break; + case "/create-group": + td.CreateGroup(Convert.ToInt32(args[i + 1])); + break; + case "/delete-group": + td.DeleteGroup(Convert.ToInt32(args[i + 1])); + break; + case "/add-to-group": + td.AddToGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); + break; + case "/delete-from-group": + td.DeleteTaskFromGroup(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 2])); + break; + case "/add-subtask": + SubTask sub1 = new SubTask(Convert.ToBoolean(args[i + 1]), Convert.ToInt32(args[i + 2]), args[i + 3], args [i + 4]); + td.AddSubTask(Convert.ToInt32(args[i + 5]),sub1); + break; + case "/change-sub-status": + td.ChangeSubtaskStatus(Convert.ToInt32(args[i + 1]), Convert.ToInt32(args[i + 1])); + break; + case "/today": + td.PrintTodaysDeadline(); + break; } } } diff --git a/Group.cs b/Group.cs new file mode 100644 index 0000000..25b3c94 --- /dev/null +++ b/Group.cs @@ -0,0 +1,13 @@ +namespace SectTask; + +public class Group +{ + public List Tasks; + public int? GroupId { get; set; } + + public Group(int Id) + { + Tasks = new List(); + GroupId = Id; + } +} diff --git a/Methods.cs b/Methods.cs index df559d3..8c7a51e 100644 --- a/Methods.cs +++ b/Methods.cs @@ -1,68 +1,63 @@ +using System.Data; +using System.Numerics; + namespace SectTask; + using System.Text.Json; -public class Methods +public class TaskManager { - private List _taskData = new List(); - private List _groupData = new List(); - private List _subData = new List(); - - public void AddTask(int id, SubTask sub, DateTime deadline, bool complete) + private readonly List _taskData; + private readonly List _groupData; + + public TaskManager() { - _taskData.Add(new Task() {TaskId = id, Sub = sub, DeadLine = deadline, TaskStatus = complete} ); + _groupData = new List(); + _taskData = new List(); + } + + public void AddTask(int id, DateTime deadline, bool complete) + { + _taskData.Add(new Task(id, deadline, complete)); Console.WriteLine("Task Created!"); } - public void AddSubTask(int Taskid, SubTask sub) + public void AddSubTask(int taskId, SubTask subTask) { - foreach (var t in _taskData.Where(t => t!.TaskId == Taskid)) - { - t!.Sub = sub; - } - + _taskData + .FirstOrDefault(task => task.TaskId == taskId) + ?.SubTasks + .Add(subTask); Console.WriteLine("SubTask Created!"); } - public void ChangeSubStatus(int id) + public void ChangeSubtaskStatus(int taskId, int subTaskId) { - foreach (var t in _subData.Where(t => t!.SubStatus == false)) - { - t!.SubStatus = true; - } + _taskData + .FirstOrDefault(task => task.TaskId == taskId)? + .SubTasks + .FirstOrDefault(subtask => subtask.SubTaskId == subTaskId)? + .ChangeStatus(); Console.WriteLine("Status Changed!"); } + public void ShowTasks() { - foreach (var t in _taskData) + foreach (var task in _taskData) { - Console.WriteLine(t!.TaskId); - Console.WriteLine(t!.TaskStatus); - var json = JsonSerializer.Serialize(t?.Sub); - var json1 = JsonSerializer.Serialize(t?.DeadLine); - Console.WriteLine(json); - Console.WriteLine(json1); - } - } - - public void ShowTasks(int id) - { - foreach (var t in _taskData) - { - if (t!.TaskId == id){ - Console.WriteLine(t!.TaskId); - Console.WriteLine(t!.TaskStatus); - var json = JsonSerializer.Serialize(t?.Sub); - var json1 = JsonSerializer.Serialize(t?.DeadLine); - Console.WriteLine(json); - Console.WriteLine(json1); - } - else + Console.WriteLine(task!.TaskId); + Console.WriteLine(task!.TaskStatus); + foreach (var task1 in task.SubTasks) { - Console.WriteLine("Wrong Id"); + var json = JsonSerializer.Serialize(task1); + Console.WriteLine(json); } + + var json1 = JsonSerializer.Serialize(task.DeadLine); + Console.WriteLine(json1); } } - + public void DeleteTask(int id) { for (var i = 0; i < _taskData.Count; ++i) @@ -73,16 +68,17 @@ public void DeleteTask(int id) } } } - - public void ChangeStatus(int id) + + public void ChangeTaskStatus(int id, bool status) { - foreach (var t in _taskData.Where(t => t!.TaskStatus == false)) + foreach (var t in _taskData) { - t!.TaskStatus = true; + t!.TaskStatus = status; } + Console.WriteLine("Status Changed!"); } - + public void toFile(string? ph) { var str = new StreamWriter(ph!); @@ -90,52 +86,61 @@ public void toFile(string? ph) { str.WriteLine(t!.TaskId); str.WriteLine(t!.TaskStatus); - var json = JsonSerializer.Serialize(t?.Sub); + var json = JsonSerializer.Serialize(t?.SubTasks); var json1 = JsonSerializer.Serialize(t?.DeadLine); str.WriteLine(json); str.WriteLine(json1); } + str.Close(); } public void fromFile(string? ph) { - if (File.Exists(ph)) + if (!File.Exists(ph)) { - using StreamReader reader = new StreamReader(ph); - _taskData.Clear(); - for (int i = 0; i < System.IO.File.ReadAllLines(ph).Length; ++i) - { - string? json = reader.ReadLine(); - if (json != null) _taskData.Add(JsonSerializer.Deserialize(json)); - } + throw new Exception("File not found"); } - else + + using var reader = new StreamReader(ph); + _taskData.Clear(); + for (var i = 0; i < System.IO.File.ReadAllLines(ph).Length; ++i) { - Console.WriteLine("File not found"); + var json = reader.ReadLine(); + if (json != null) _taskData.Add(JsonSerializer.Deserialize(json)!); } } - - public void DayCheck() + + public void PrintTodaysDeadline() { - foreach (var json in from t in _taskData where t!.DeadLine.Day == DateTime.Now.Day select JsonSerializer.Serialize(t)) + foreach (var task in _taskData) { - Console.WriteLine(json); + if (task.DeadLine.Day == DateTime.Now.Day) + { + var json = JsonSerializer.Serialize(task); + Console.WriteLine(json); + } } } - public void CreateGroup(int id) + public void CreateGroup(int Id) { - _groupData.Add(new Group(){GroupId = id,Tasks = null}); + _groupData.Add(new Group(Id)); } - public void AddToGroup(int Taskid, int Groupid) + public void AddToGroup(int taskId, int groupId) { - foreach (var t in _taskData.Where(t => t!.TaskId == Taskid)) + foreach (var t in _taskData) { - foreach (var t1 in _groupData.Where(t1 => t1!.GroupId == Groupid)) + if (t.TaskId == taskId) { - t1!.Tasks = t; + foreach (var t1 in _groupData) + { + if (t1.GroupId == groupId) + { + t1.Tasks.Add(t); + } + } } } } @@ -146,52 +151,30 @@ public void ShowGroup() { var json = JsonSerializer.Serialize(t!.GroupId); var json1 = JsonSerializer.Serialize(t!.Tasks); - if (json == "null") - { - Console.Write(""); - } - else - { - Console.WriteLine(json); - } - if (json1 == "null") - { - Console.Write(""); - } - else - { - Console.WriteLine(json1); - } + Console.WriteLine(json); + Console.WriteLine(json1); } } - public void DeleteGroup(int id) + public void DeleteGroup(int Id) { - foreach (var t in _groupData) - { - if (t!.GroupId == id) - { - t.Tasks = null; - t.GroupId = null; - } - } + var group = _groupData.Single(group => group.GroupId == Id); + _groupData.Remove(group); } - public void DeleteFromGroup(int Groupid, int Taskid) + public void DeleteTaskFromGroup(int groupId, int taskId) { - for (int i = 0; i < _groupData.Count; ++i) + foreach (var group in _groupData.Where(t => t.GroupId == groupId)) { - if (_groupData[i]!.GroupId == Groupid) + for (var j = 0; j < _taskData.Count; ++j) { - for (int j = 0; j < _taskData.Count; ++j) + if (_taskData[j].TaskId == taskId) { - if (_taskData[j]!.TaskId == Taskid) - { - _groupData[i]!.Tasks = null; - } + group.Tasks.Remove(group.Tasks[j]); } } - } + } } + } \ No newline at end of file diff --git a/Program.cs b/Program.cs index 4616622..c54b576 100644 --- a/Program.cs +++ b/Program.cs @@ -1,6 +1,4 @@ -using System.ComponentModel.Design.Serialization; - -namespace SectTask; +namespace SectTask; static class Program { @@ -8,5 +6,36 @@ static void Main(string?[] args) { CommandParser input = new CommandParser(); input.Commands(args); + + /* TaskManager td = new TaskManager(); + SubTask subTask = new SubTask(false, 1,"sport", "beerpong") ; + SubTask subTask1 = new SubTask(false, 2,"sprt", "beerpong") ; + SubTask subTask2 = new SubTask(false, 3,"port", "beerpong") ; + + td.AddTask(1,DateTime.Now, true); + td.AddTask(2,DateTime.Now, true); + td.AddTask(3,DateTime.Now, true); + + td.ShowTasks(); + Console.WriteLine(); + td.ChangeTaskStatus(1, false); + td.ShowTasks(); + Console.WriteLine(); + td.ChangeSubtaskStatus(1, 1); + td.ShowTasks(); + td.AddSubTask(1,subTask); + td.AddSubTask(1,subTask1); + td.AddSubTask(1,subTask2); + td.CreateGroup(1); + td.AddToGroup(1,1); + td.AddToGroup(2,1); + Console.WriteLine(); + //td.ShowTasks(); + + td.ShowGroup(); + td.DeleteTaskFromGroup(1,2); + td.ShowGroup(); + td.DeleteGroup(1); + td.ShowGroup();*/ } } \ No newline at end of file diff --git a/SubTask.cs b/SubTask.cs new file mode 100644 index 0000000..a3c1506 --- /dev/null +++ b/SubTask.cs @@ -0,0 +1,22 @@ +namespace SectTask; + +public class SubTask +{ + public bool Status { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } + + public int SubTaskId { get; set; } + + public SubTask(bool complete, int id, string? name, string? description) + { + Status = complete; + Name = name; + Description = description; + SubTaskId = id; + } + + public void ChangeStatus() => Status = !Status; +} \ No newline at end of file diff --git a/Task.cs b/Task.cs index c2170e7..b474442 100644 --- a/Task.cs +++ b/Task.cs @@ -1,43 +1,16 @@ namespace SectTask; - -public class SubTask -{ - public bool SubStatus { get; set; } - - public string? Name { get; set; } - - public string? Description { get; set; } - - public SubTask(bool complete, string? name, string? description) - { - SubStatus = complete; - Name = name; - Description = description; - } - -} - public class Task { - public SubTask Sub; + public List SubTasks; public int TaskId { get; set; } - public bool TaskStatus { get; set; } public DateTime DeadLine { get; set; } // 01.01.0001 0:00:00 - public Task(int id, SubTask sub, DateTime deadline, bool status) + public Task(int id, DateTime deadline, bool status) { TaskId = id; - Sub = sub; + SubTasks = new List(); DeadLine = deadline; TaskStatus = status; } - - public Task() { } } - -public class Group -{ - public Task? Tasks; - public int? GroupId { get; set; } -} \ No newline at end of file diff --git a/sectreborn.sln b/sectreborn.sln new file mode 100644 index 0000000..43293ef --- /dev/null +++ b/sectreborn.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sectreborn", "sectreborn\sectreborn.csproj", "{68D18D10-A682-4D7E-BB67-3815EA1336E7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {68D18D10-A682-4D7E-BB67-3815EA1336E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68D18D10-A682-4D7E-BB67-3815EA1336E7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68D18D10-A682-4D7E-BB67-3815EA1336E7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68D18D10-A682-4D7E-BB67-3815EA1336E7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal From 041e383961658ab99373e52c336212c144833751 Mon Sep 17 00:00:00 2001 From: Suren Date: Wed, 29 Jun 2022 14:20:14 +0300 Subject: [PATCH 3/3] Fix AddSubTask method --- Methods.cs | 17 +++++++++++++---- Program.cs | 7 ++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Methods.cs b/Methods.cs index 8c7a51e..88b232c 100644 --- a/Methods.cs +++ b/Methods.cs @@ -24,11 +24,20 @@ public void AddTask(int id, DateTime deadline, bool complete) public void AddSubTask(int taskId, SubTask subTask) { - _taskData + + var adder = _taskData .FirstOrDefault(task => task.TaskId == taskId) - ?.SubTasks - .Add(subTask); - Console.WriteLine("SubTask Created!"); + ?.SubTasks; + if (adder != null) + { + adder.Add(subTask); + Console.WriteLine("SubTask Created!"); + } + else + { + Console.WriteLine("Try another Id"); + } + } public void ChangeSubtaskStatus(int taskId, int subTaskId) diff --git a/Program.cs b/Program.cs index c54b576..be044a0 100644 --- a/Program.cs +++ b/Program.cs @@ -7,7 +7,7 @@ static void Main(string?[] args) CommandParser input = new CommandParser(); input.Commands(args); - /* TaskManager td = new TaskManager(); + /* TaskManager td = new TaskManager(); SubTask subTask = new SubTask(false, 1,"sport", "beerpong") ; SubTask subTask1 = new SubTask(false, 2,"sprt", "beerpong") ; SubTask subTask2 = new SubTask(false, 3,"port", "beerpong") ; @@ -25,7 +25,7 @@ static void Main(string?[] args) td.ShowTasks(); td.AddSubTask(1,subTask); td.AddSubTask(1,subTask1); - td.AddSubTask(1,subTask2); + td.AddSubTask(5,subTask2); td.CreateGroup(1); td.AddToGroup(1,1); td.AddToGroup(2,1); @@ -36,6 +36,7 @@ static void Main(string?[] args) td.DeleteTaskFromGroup(1,2); td.ShowGroup(); td.DeleteGroup(1); - td.ShowGroup();*/ + td.ShowGroup(); + */ } } \ No newline at end of file