public void User_IsDiferent() { var user = new UserBuild().Builder(); var otheUser = new UserBuild().WithName("name test 2").WithEmail("*****@*****.**"); Assert.AreNotEqual(user, otheUser); }
private double CalculatePriceForBuild(UserBuild build) { var basePrice = build.Processor.Price + build.Motherboard.Price + build.Memory.Price + build.Storage.Sum(x => x.Price) + build.PowerSupply.Price + build.Case.Price; return(Math.Ceiling(basePrice / 10.0) * 10); }
public void User_IsEqual() { var user = new UserBuild().Builder(); var otherUser = user; Assert.AreEqual(user, otherUser); }
public static int AddUserData(All userData) { UserBuild ub = new UserBuild(); userData.Time = Function.GetUTCTime(); SamgoModels.UserInfo ui = new SamgoModels.UserInfo(); UserValue uLord = new UserValue(); UserValue uProsperity = new UserValue(); UserPower up = new UserPower(); UserTechnique ut = new UserTechnique(); UserOrdnance uo = new UserOrdnance(); var userInfo = new SamgoModels.UserInfo(); userData.SeqNo = DapperHelper.Search<int>( connectionString, " exec [samgo_add_user_and_group] N'" + userData.Role + "' , N'" + userData.Legion + "'").FirstOrDefault(); ConvertDataToModels(ref ub, ref ui, ref uLord, ref uProsperity, ref up, userData); DapperHelper.InsertSQLNormal<UserBuild>(connectionString, "Build", ub); //DapperHelper.InsertSQL<SamgoModels.UserInfo>(connectionString, "SamgoGame", ui); DapperHelper.InsertSQLNormal<UserValue>(connectionString, "Lord", uLord); DapperHelper.InsertSQLNormal<UserValue>(connectionString, "Prosperity", uProsperity); DapperHelper.InsertSQLNormal<UserPower>(connectionString, "SamgoGamePower", up); ConvertDataToModels(ref ut, ref uo, userData); DapperHelper.InsertSQLNormal<UserTechnique>(connectionString, "Technique", ut); var response = DapperHelper.InsertSQLNormal<UserOrdnance>(connectionString, "Ordnance", uo); return userData.SeqNo; }
public async Task UpdateUserCommandHandler_UpdateUser() { User user = new UserBuild().Builder(); var command = new UpdateUserCommandBuilder().Builder(); repositoryMock.GetByExternalIdAsync(Arg.Any <string>()).Returns(user); var result = await handler.Handle(command, new CancellationToken()); Assert.IsTrue(result.Success); Assert.AreEqual(user.Id, (Guid)result.Data); }
public async Task AddUserCommandHandler_UserAlreadyExists_AndHasCHanges_ShouldReturn_UserId() { var guid = Guid.NewGuid(); var user = new UserBuild().Builder(); var command = new AddUserCommandBuilder().Builder(); repositoryMock.GetByExternalIdAsync(Arg.Any <string>()).Returns(user); mediatorHandlerMock.SendAsync(Arg.Any <UpdateUserCommand>()).Returns(new CommandResult(true, guid)); var result = await handler.Handle(command, new CancellationToken()); Assert.True(result.Success); Assert.AreEqual(guid, (Guid)result.Data); }
private string GetNameForUserBuild(UserBuild build) { var sb = new StringBuilder(); sb.Append($"{build.Processor.Name}/"); sb.Append($"{build.Memory.Capacity}/"); sb.Append($"{build.GraphicsCard.Name}/"); foreach (var st in build.Storage) { sb.Append($"{st.Capacity}GB/"); } return(sb.ToString()); }
private static void ConvertDataToModels(ref UserBuild ub, ref SamgoModels.UserInfo ui, ref UserValue uLord, ref UserValue uProsperity, ref UserPower up, All userData) { //SamgoGame(主紀錄+編號) ui.Legion = userData.Legion; ui.Official = userData.Official; ui.Role = userData.Role; ui.SeqNo = userData.SeqNo; //Lord(主公) uLord.SeqNo = userData.SeqNo; uLord.Time = userData.Time; uLord.Value = userData.Lord; //Prosperity(繁榮) uProsperity.SeqNo = userData.SeqNo; uProsperity.Time = userData.Time; uProsperity.Value = userData.Prosperity; //Build(大殿) ub.SeqNo = userData.SeqNo; ub.Time = userData.Time; ub.Basilica = userData.Basilica; ub.Technique = userData.Technique; ub.Market = userData.Market; ub.Horse = userData.Horse; ub.School = userData.School; ub.House = userData.House; ub.Wood = userData.Wood; ub.Stone = userData.Stone; ub.Iron = userData.Iron; ub.Farmland = userData.Farmland; ub.Barracks = userData.Barracks; ub.Soldier = userData.Soldier; ub.Coin = userData.Coin; ub.Treasure = userData.Treasure; ub.Ordnance = userData.Ordnance; ub.Wall = userData.Wall; //戰力 up.Power = userData.Power; up.SeqNo = userData.SeqNo; up.Time = userData.Time; }
public async Task <UserBuild> GetEqualOrDefaultAsync(UserBuild build) { var foundBuild = await _context.UserBuilds .Where(x => x.UserId == build.User.Id) .Where(x => Math.Abs(x.Price - build.Price) < 1) .Where(x => x.Name == build.Name) .Where(x => x.ProcessorId == build.Processor.Id) .Where(x => x.MotherboardId == build.Motherboard.Id) .Where(x => x.MemoryId == build.Memory.Id) .Where(x => x.GraphicsCardId == build.GraphicsCard.Id) .Where(x => x.PowerSupplyId == build.PowerSupply.Id) .Where(x => x.CaseId == build.Case.Id) .FirstOrDefaultAsync(); return(foundBuild); }
public async Task AddUserCommandHandler_UserAlreadyExists_AndNotHasCHanges_ShouldReturn_UserId() { var user = new UserBuild().Builder(); var command = new AddUserCommandBuilder() .WithExternalId(user.ExternalId) .WithName(user.Name) .WithPhoneNumber(user.PhoneNumber) .WithEmail(user.Email) .Builder(); repositoryMock.GetByExternalIdAsync(Arg.Any <string>()).Returns(user); var result = await handler.Handle(command, new CancellationToken()); Assert.True(result.Success); Assert.AreEqual(user.Id, (Guid)result.Data); }
private async Task <UserBuild> CreateBuildForUser(User user) { var userTagMatches = user.UserTagMatches.ToList(); var cpu = await GetProcessorForUser(userTagMatches); var mobo = await GetMotherboardForUser(userTagMatches, cpu.Socket); var memory = await GetMemoryForUser(userTagMatches, mobo.MemorySlots); var gpu = await GetGraphicsCardForUser(userTagMatches); var storage = await GetStorageForUser(userTagMatches); var powerSupply = await GetPowerSupplyForUser(userTagMatches); var computerCase = await GetCaseForUser(userTagMatches, mobo.FormFactor); var newBuild = new UserBuild { Processor = cpu, Motherboard = mobo, Storage = new List <Storage> { storage }, Memory = memory, GraphicsCard = gpu, PowerSupply = powerSupply, Case = computerCase, User = user, Price = 0, GeneratedAt = DateTime.Now, }; newBuild.Price = CalculatePriceForBuild(newBuild); newBuild.Name = GetNameForUserBuild(newBuild); return(newBuild); }
public async Task AddBuildAsync(UserBuild build) { await _context.UserBuilds.AddAsync(build); await _context.SaveChangesAsync(); }