I wrote this method in order to generate a sequence number based on a specific pattern:
public string LatestNumber(Guid id = default(Guid))
{
var number = "";
if (id == Guid.Empty)
{
var items = myList.ToList();
var lastNumber = items.Any() ? items[items.Count - 1].Number : "";
var intitialNumber = "Number#000001";
if (!items.Any())
number = intitialNumber;
else
{
var nextNumber = int.Parse(lastNumber.Split('#')[1]) + 1;
number = $"Number#{nextNumber:D6}";
}
}
else
{
number = myList.FirstOrDefault(p => p.Id == id).Number;
}
return number;
}
This code works as expected in production but I wonder if there's a better way to make this code clean or more testable. What do you think?