public async Task Coin(CommandContext ctx) { if (!await CanExecute(ctx, Features.Games)) { return; } Log.Debug($"Requesting {nameof(Coin)}()..."); var cfg = GuildConfiguration.FromGuild(ctx.Guild); var isHead = Rand.Next(0, 2) == 0; var embed = new DiscordEmbedBuilder { Title = isHead ? "Head!" : "Tail!", Description = $"{ctx.User.Mention}, your coin flipped {(isHead ? "**Head**" : "**Tail**")}!", Color = DiscordColor.Goldenrod, Url = BasicExtensions.SiteUrl(), ImageUrl = BasicExtensions.SiteUrl() + $"/images/coin-{(isHead ? "head" : "tail")}.png", Author = new DiscordEmbedBuilder.EmbedAuthor { Name = "WoTClans", Url = BasicExtensions.SiteUrl() }, Footer = new DiscordEmbedBuilder.EmbedFooter { Text = $"Flipped at {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC." } }; Log.Debug($"Returned {nameof(Coin)}() = {isHead}"); await ctx.RespondAsync("", embed : embed); }
/// <summary> /// Calculate the Annual Salary /// </summary> /// <param name="employeeDTO">Employee entity</param> /// <returns>The annual salary calculated</returns> public static decimal CalculatedAnnualSalary(IEmployeeDTO employeeDTO) { SalaryBase salaryBase = null; decimal annualSalary = 0; TypesContracts typesContracts = BasicExtensions.ToEnum <TypesContracts>(employeeDTO.contractTypeName); switch (typesContracts) { case TypesContracts.HourlySalaryEmployee: salaryBase = new HourlySalary(); break; case TypesContracts.MonthlySalaryEmployee: salaryBase = new MonthlySalary(); break; } annualSalary = salaryBase.CalculatedAnnualSalary(employeeDTO); return(annualSalary); }
/// <summary> /// Cast a list of employees /// </summary> /// <typeparam name="TR">Type to cast</typeparam> /// <param name="origin">Origin data type</param> /// <returns>A casted list</returns> public static List <TR> EmployeeListMapper <TR>(this List <IEmployeeDTO> origin) where TR : IEmployeeDTO, new() { return(BasicExtensions.ListCast(origin, (itemorigin) => { return itemorigin.EmployeeMapper(new TR()); })); }