/// <summary> /// Tạo mới 1 người dùng hệ thống - tương tác 2 chiều với local và server: /// 1. Tạo mới người dùng đi kèm tài khoản đăng nhập trên server /// -> 2. Lấy thông tin người dùng đã được tạo trên server về local /// -> 3. Đưa thông tin người dùng đã tạo vào local /// </summary> /// <param name="hoTen">Họ và tên</param> /// <param name="ngaySinh">Ngày sinh</param> /// <param name="email">Email đăng ký</param> /// <param name="soDienThoai">Số điện thoại liên lạc</param> /// <param name="tenDangNhap">Tên đăng nhập</param> /// <param name="matKhau">Mật khẩu đăng nhập</param> /// <returns>True nếu tạo thành công, ngược lại false</returns> public async Task<bool> createNewNguoiDung(string hoTen, DateTime ngaySinh, string email, string soDienThoai, string tenDangNhap, string matKhau) { try { ServerDatabaseService.NguoiDung nguoiDung = new ServerDatabaseService.NguoiDung(); nguoiDung.MaNguoiDung = -1; // auto create in server nguoiDung.HoTen = hoTen; nguoiDung.NgaySinh = CustomDateTime.ToIntegerTime(ngaySinh); nguoiDung.Email = email; nguoiDung.SoDienThoai = soDienThoai; var result1 = await _serverModel.insertNguoiDungAsync(nguoiDung, tenDangNhap, matKhau); var result2 = await _serverModel.getNguoiDungByEmailAsync(email); var nguoiDungServer = result2.Body.getNguoiDungByEmailResult; var result3 = await _localModel.insertNguoiDung(new NGUOIDUNG(nguoiDungServer.MaNguoiDung, nguoiDungServer.HoTen, nguoiDungServer.NgaySinh, nguoiDungServer.Email, nguoiDungServer.SoDienThoai)); return result3; } catch (EndpointNotFoundException e) { throw new HttpRequestException("Không thể kết nối đến server. Vui lòng kiểm tra kết nối internet và thử lại."); } catch (HttpRequestException e) { throw new HttpRequestException("Không thể kết nối đến server. Vui lòng kiểm tra kết nối internet và thử lại."); } catch (Exception ex) { throw ex; } }
private async Task<bool> asyncDataNguoiDung(int maNguoiDung) { try { NGUOIDUNG localNguoiDung = await _localModel.getNguoiDung(maNguoiDung); ServerDatabaseService.NguoiDung serverNguoiDung = new ServerDatabaseService.NguoiDung(); serverNguoiDung.MaNguoiDung = maNguoiDung; if (localNguoiDung != null) { serverNguoiDung.MaNguoiDung = localNguoiDung.MaNguoiDung; serverNguoiDung.HoTen = localNguoiDung.HoTen; serverNguoiDung.NgaySinh = (localNguoiDung.NgaySinh); serverNguoiDung.Email = localNguoiDung.Email; serverNguoiDung.SoDienThoai = localNguoiDung.SoDienThoai; var respone = await _serverModel.dataSyncNguoiDungAsync(serverNguoiDung); serverNguoiDung = respone.Body.dataSyncNguoiDungResult; await _localModel.updateNguoiDung(serverNguoiDung.MaNguoiDung, serverNguoiDung.HoTen, serverNguoiDung.NgaySinh, serverNguoiDung.SoDienThoai); } else { var respone = await _serverModel.getNguoiDungByMaNguoiDungAsync(maNguoiDung); serverNguoiDung = respone.Body.getNguoiDungByMaNguoiDungResult; localNguoiDung = new NGUOIDUNG(serverNguoiDung.MaNguoiDung, serverNguoiDung.HoTen, serverNguoiDung.NgaySinh, serverNguoiDung.Email, serverNguoiDung.SoDienThoai); await _localModel.insertNguoiDung(localNguoiDung); } return true; } catch (EndpointNotFoundException e) { throw new HttpRequestException("Không thể kết nối đến server. Vui lòng kiểm tra kết nối internet và thử lại."); } catch (HttpRequestException e) { throw new HttpRequestException("Không thể kết nối đến server. Vui lòng kiểm tra kết nối internet và thử lại."); } catch (Exception ex) { throw ex; } }
private async Task<bool> asyncDataNguoiDung(int maNguoiDung) { try { NGUOIDUNG localNguoiDung = await _localModel.getNguoiDung(maNguoiDung); ServerDatabaseService.NguoiDung serverNguoiDung = new ServerDatabaseService.NguoiDung(); serverNguoiDung.MaNguoiDung = maNguoiDung; if (localNguoiDung != null) { serverNguoiDung.MaNguoiDung = localNguoiDung.MaNguoiDung; serverNguoiDung.HoTen = localNguoiDung.HoTen; serverNguoiDung.NgaySinh = (localNguoiDung.NgaySinh); serverNguoiDung.Email = localNguoiDung.Email; serverNguoiDung.SoDienThoai = localNguoiDung.SoDienThoai; var respone = await _serverModel.dataSyncNguoiDungAsync(serverNguoiDung); serverNguoiDung = respone.Body.dataSyncNguoiDungResult; await _localModel.updateNguoiDung(serverNguoiDung.MaNguoiDung, serverNguoiDung.HoTen, serverNguoiDung.NgaySinh, serverNguoiDung.SoDienThoai); } else { var respone = await _serverModel.getNguoiDungByMaNguoiDungAsync(maNguoiDung); serverNguoiDung = respone.Body.getNguoiDungByMaNguoiDungResult; localNguoiDung = new NGUOIDUNG(serverNguoiDung.MaNguoiDung, serverNguoiDung.HoTen, serverNguoiDung.NgaySinh, serverNguoiDung.Email, serverNguoiDung.SoDienThoai); await _localModel.insertNguoiDung(localNguoiDung); } return true; } catch (Exception ex) { throw ex; } }