/// <summary> /// /// </summary> /// <param name="vm"></param> /// <param name="fileType"></param> /// <returns>User where phone was added</returns> public async Task <GetPhoneBook> AddPhoneNumber(PhoneBookVM vm, int fileType) { try { var user = PhoneBookVMToUser(vm); User userGet = await FileHandlers[fileType].GetSpecificUser(user.Id); if (userGet == null) { return(null); } List <UserPhones> userPhones = await FileHandlers[fileType].GetUserPhones(); int userphoneid = userPhones.Count + 1; var userPhonesAdd = user.UserPhones?.AsEnumerable().Select(x => new UserPhones { Id = userphoneid++, Number = x.Number, PhoneTypeId = x.PhoneTypeId, UserId = userGet.Id }).ToList(); userPhones.AddRange(userPhonesAdd); await FileHandlers[fileType].WriteUserPhones(userPhones); return(await GetUser(user.Id, fileType)); } catch (Exception ex) { return(null); } }
public async Task <GetPhoneBook> PutUser(PhoneBookVM vm, int fileType) { try { User user = PhoneBookVMToUser(vm); List <User> userList = await FileHandlers[fileType].GetUsers(); userList.Where(x => x.Id == user.Id).ToList().ForEach(upd => { upd.FirstName = user.FirstName; upd.LastName = user.LastName; }); await FileHandlers[fileType].WriteUsers(userList); List <UserPhones> userPhones = await FileHandlers[fileType].GetUserPhones(); List <int> userPhonesID = user.UserPhones?.Select(x => x.Id).ToList(); userPhones.Where(x => userPhonesID.Contains(x.Id)).ToList().ForEach(x => { x.Number = user.UserPhones.FirstOrDefault(y => y.Id == x.Id)?.Number; x.PhoneTypeId = user.UserPhones.FirstOrDefault(y => y.Id == x.Id)?.PhoneTypeId ?? 1; }); await FileHandlers[fileType].WriteUserPhones(userPhones); return(await GetUser(user.Id, fileType)); } catch (Exception ex) { return(null); } }
public async Task <IActionResult> Create([Bind(include: "Name")] PhoneBookVM phoneBookVM) { var phoneBook = new PhoneBookVM().PhoneBookObj(phoneBookVM); await phoneBookApiClient.CreatePhoneBook(phoneBook); return(RedirectToAction(nameof(Index))); }
public async Task <GetPhoneBook> Post([FromBody] PhoneBookVM user, int fileType = 0) { if (fileType != 1 && fileType != 2 && fileType != 0) { fileType = 0; } var result = await _phoneBookRepository.PostUser(user, fileType); return(result); }
public async Task <ActionResult <GetPhoneBook> > Put(int id, [FromBody] PhoneBookVM user, int fileType = 0) { if (id != user.Id) { return(new BadRequestObjectResult("Check out data entered")); } if (fileType != 1 && fileType != 2 && fileType != 0) { fileType = 0; } var result = await _phoneBookRepository.PutUser(user, fileType); return(result); }
public async Task <ActionResult <GetPhoneBook> > AddPhoneNumber([FromBody] PhoneBookVM phoneBook, int fileType = 0) { if (fileType != 1 && fileType != 2 && fileType != 0) { fileType = 0; } var result = await _phoneBookRepository.AddPhoneNumber(phoneBook, fileType); if (result == null) { return(new BadRequestObjectResult("Check user data")); } return(result); }
private static User PhoneBookVMToUser(PhoneBookVM phoneBook) { return(new User { Id = phoneBook.Id, FirstName = phoneBook.FirstName, LastName = phoneBook.LastName, UserPhones = phoneBook.PhoneNumbers.Select(x => new UserPhones { Id = x.Id, Number = x.Number, PhoneTypeId = x.PhoneTypeId }).ToList(), }); }
public async Task <GetPhoneBook> PostUser(PhoneBookVM vm, int fileType) { try { User user = PhoneBookVMToUser(vm); List <User> userList = await FileHandlers[fileType].GetUsers(); int userId = userList.Count + 1; userList.Add(new User { Id = userId, FirstName = user.FirstName, LastName = user.LastName, }); await FileHandlers[fileType].WriteUsers(userList); List <UserPhones> userPhones = await FileHandlers[fileType].GetUserPhones(); int userPhonesId = userPhones.Count + 1; var userPhonesAdd = user.UserPhones?.AsEnumerable().Select(x => new UserPhones { Id = userPhonesId++, Number = x.Number, PhoneTypeId = x.PhoneTypeId, UserId = userId }).ToList(); userPhones.AddRange(userPhonesAdd); await FileHandlers[fileType].WriteUserPhones(userPhones); return(await GetUser(userId, fileType)); } catch (Exception ex) { return(null); } }