コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        public async Task <IActionResult> Create([Bind(include: "Name")] PhoneBookVM phoneBookVM)
        {
            var phoneBook = new PhoneBookVM().PhoneBookObj(phoneBookVM);

            await phoneBookApiClient.CreatePhoneBook(phoneBook);

            return(RedirectToAction(nameof(Index)));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
 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(),
     });
 }
コード例 #8
0
        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);
            }
        }