public int DeletePeriod(DeletePeriodArgs args) { Period found; using (var periods = new PeriodService()) { found = periods.FindOne(args.EzName); if (found == null) { return((int)ExitCodes.PeriodNotFound); } } ConsoleKeyInfo key = new ConsoleKeyInfo(); if (args.Dissociate) { key = new ConsoleKeyInfo('Y', ConsoleKey.Y, false, false, false); } while (key.Key != ConsoleKey.Y && key.Key != ConsoleKey.Enter) { Console.WriteLine($"Found Period\n{found}"); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"Are you sure you want to dissociate the following items? [Y/n]"); Console.ResetColor(); var joined = found.Items.Aggregate("", (prev, next) => $"{(string.IsNullOrEmpty(prev) ? $"{prev}" : $"{prev}\n")}{next}"); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine($"({joined})"); Console.ResetColor(); key = Console.ReadKey(); if (key.Key == ConsoleKey.N) { return((int)ExitCodes.Success); } }
public void FindOneTest() { var expected = _periods.Create(new Period { Name = "FindOne", EzName = "F1", StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1), Items = new List <TrackItem>() }); var actual = _periods.FindOne("F1"); Assert.AreEqual(expected.EzName, actual.EzName); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual( expected.StartDate.ToString("yyyy-MM-dd"), actual.StartDate.ToString("yyyy-MM-dd") ); Assert.AreEqual( expected.EndDate.ToString("yyyy-MM-dd"), actual.EndDate.ToString("yyyy-MM-dd") ); Assert.AreEqual(expected.Items.Count(), actual.Items.Count()); }
public int Update(UpdatePeriodArgs args) { using (var periods = new PeriodService()) { Period found; var toUpdate = new Period(); try { found = periods.FindOne(args.EzName); if (found == null) { throw new ArgumentNullException("Period Not Found"); } Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"Updating Found Period\n{found}"); Console.ResetColor(); } catch (ArgumentNullException) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Period with Easy Name [{args.EzName}] could not be found."); Console.ResetColor(); return((int)ExitCodes.FailedToUpdate); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Failed to Update Period with Easy Name [{args.EzName}], {e.Message}"); Console.ResetColor(); return((int)ExitCodes.FailedToUpdate); } if (args.StartDate != DateTime.MinValue) { found.StartDate = args.StartDate; } if (args.EndDate != DateTime.MinValue) { found.EndDate = args.EndDate; } if (!string.IsNullOrEmpty(args.Name) && !string.IsNullOrWhiteSpace(args.Name)) { found.Name = args.Name; } var updated = periods.UpdateOne(found); if (!updated) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Failed to Update Period with Easy Name [{args.EzName}]"); Console.ResetColor(); return((int)ExitCodes.FailedToUpdate); } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Period Updated\n{found}"); Console.ResetColor(); return((int)ExitCodes.Success); } }