Пример #1
0
        /// <summary>
        /// Apiへのリクエストを実行する
        /// </summary>
        /// <param name="onSuccess">APIへのリクエストに成功した時のコールバック</param>
        /// <param name="onError">エラー発生時のコールバック</param>
        /// <typeparam name="T">成功した時の戻り値の型</typeparam>
        public void SendRequest(Action <T, ApiLinksFormat> onSuccess, Action <ApiErrorFormat> onError)
        {
            var url           = new ApiUrl(EnvironmentConfig.HttpHostUrl, RequestPath);
            var requestHeader = new ApiHeader(Headers);
            var conn          = ConnectionFactory.CreateHttpConnection(url, Methods, Params, requestHeader);

            if (onSuccess != null)
            {
                conn.OnSuccess = (response) => ResponseConverter.Convert(
                    response,
                    (responseTemplate) => onSuccess(responseTemplate.data, responseTemplate._links),
                    onError
                    );
            }
            if (OnDownloadProgress != null)
            {
                conn.OnDownloadProgress = (value) => OnDownloadProgress.Invoke(value);
            }
            if (OnUploadProgress != null)
            {
                conn.OnUploadProgress = (value) => OnUploadProgress.Invoke(value);
            }
            if (onError != null)
            {
                conn.OnError = (error) => onError(ResponseConverter.ConvertError(error.Response));
            }
            conn.RequestAsync(Timeout);
        }
Пример #2
0
        public void AddPrice(ApiHeader apiHeader, EditPriceModel models)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.AddPrice;

            //var ob = JsonConvert.SerializeObject(models);
            Restful.Post(url, apiHeader, models);
        }
Пример #3
0
        public string PushNotifiCall(ApiHeader apiHeader, string id)
        {
            var url    = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.PushNotifiCall, id);
            var result = Restful.Get(url, apiHeader);

            return(result["callId"].ToString());
        }
Пример #4
0
 public IList <AppointmentResult> Search(ApiHeader apiHeader, string hospitalId,
                                         int start         = GlobalConstant.StartIndex,
                                         int length        = GlobalConstant.Length, string searchKeyword = null, SortField sortField = SortField.None,
                                         SortType sortType = SortType.Desc, object status                = null)
 {
     throw new NotImplementedException();
 }
Пример #5
0
        public HospitalModel AddOrUpdate(ApiHeader apiHeader, HospitalModel entity)
        {
            //Update Clinic
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.EditClinic;

            return(Restful.PostMultipartFormClinic(url, apiHeader, entity).Get <HospitalModel>(ApiKeyData.Hospital));
        }
Пример #6
0
        public void ConfirmInviteNewUser(ApiHeader apiHeader, InviteNewUserModel model)
        {
            //var url = ApiUrl.Default.RootApi + ApiUrl.Default.ConfirmInvitationNewUser;
            //Restful.PostMultipartForm(url, apiHeader, model.User);

            ////neeus ok
            //CheckExpired(model.User.Email, model.User.Hash, true, model.Password.Password);
        }
Пример #7
0
        public ApiHeader ActiveUser(ApiHeader apiHeader, CreateNewPasswordModel model)
        {
            var       url    = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.ActiveClinic, model.Hash, model.Email);
            var       data   = Restful.Get(url, apiHeader);
            ApiHeader header = data.Get <ApiHeader>();

            CreatePassword(header, model);
            return(header);
        }
Пример #8
0
        public HospitalModel GetClinicInforForPartner(string lang, string hospitalId)
        {
            var       url       = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetClinicInforForPartner, hospitalId);
            ApiHeader apiHeader = new ApiHeader();

            apiHeader.Lang  = lang;
            apiHeader.Token = GlobalConstant.TokenForParner;
            return(Restful.Get(url, apiHeader).Get <HospitalModel>(ApiKeyData.Hospital));
        }
Пример #9
0
        public UserModel GetProfile(ApiHeader apiHeader, string id)
        {
            var       url    = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetUserProfile, id);
            var       data   = Restful.Get(url, apiHeader);
            UserModel result = data.Get <UserModel>(ApiKeyData.User);

            result.AppointmentCount = (string)data["appointmentCount"];
            return(result);
        }
Пример #10
0
 public KeyValueResult[] Add(ApiHeader apiHeader, UserModel entity)
 {
     //var url = ApiUrl.Default.RootApi + ApiUrl.Default.AddOrUpdateUser;
     //var data = Restful.PostMultipartForm(url, apiHeader, entity);
     //KeyValueResult[] result = new KeyValueResult[2];
     //result[0] = new KeyValueResult("userId", data["userId"]);
     //result[1] = new KeyValueResult("isExist", data["isExist"]);
     //return result;
     return(null);
 }
Пример #11
0
        public IList <HospitalModel> ListHospitals(ApiHeader apiHeader, string status = "all", string signUpStatus = null,
                                                   int start     = GlobalConstant.StartIndex, int length = GlobalConstant.Length, bool showAdmin = false,
                                                   string search = null, bool searchExactly              = true)
        {
            var url = ApiUrl.Default.RootApi +
                      string.Format(ApiUrl.Default.ListHospital, status, signUpStatus, start, length, showAdmin, searchExactly, search);
            var data = Restful.Get(url, apiHeader);

            _total = data["total"].ToObject <int>();
            return(data.GetList <HospitalModel>(ApiKeyData.ListHospital));
        }
Пример #12
0
        public IList <AppointmentResult> Get(ApiHeader apiHeader, string hospitalId, string doctorId, string status,
                                             long?startDate, long?endDate, int start, int lenght, string keyword, bool searchExactly, SortField orderBy, SortType sortType)
        {
            var url = ApiUrl.Default.RootApi +
                      string.Format(ApiUrl.Default.ListAppointment, hospitalId, doctorId, status, startDate, endDate,
                                    start, lenght, keyword, searchExactly, orderBy.DescriptionAttr(), sortType.DescriptionAttr());
            var data = Restful.Get(url, apiHeader);

            _total = data["total"].ToObject <int>();
            return(data.GetList <AppointmentResult>(ApiKeyData.ListAppointment));
        }
Пример #13
0
        private static JObject CallMultipartFormApi(string url, ApiHeader apiHeader, CreateClinicUserModel data)
        {
            var cultureCode   = Thread.CurrentThread.CurrentCulture;
            var clientHandler = new WebRequestHandler();

            clientHandler.ClientCertificates.Add(new X509Certificate2());
            var httpClient = new HttpClient();

            if (apiHeader != null)
            {
                httpClient.DefaultRequestHeaders.Add("userId", apiHeader.UserId);
                httpClient.DefaultRequestHeaders.Add("sessionId", apiHeader.SessionId);
            }
            if (!string.IsNullOrEmpty(apiHeader?.Lang))
            {
                httpClient.DefaultRequestHeaders.Add("lang", apiHeader.Lang);
            }
            else
            {
                httpClient.DefaultRequestHeaders.Add("lang", "en");
            }
            var multipart = new MultipartFormDataContent
            {
                { new StringContent(string.IsNullOrEmpty(data.FirstName) ? "" : data.FirstName), "FirstName" },
                { new StringContent(string.IsNullOrEmpty(data.LastName) ? "" : data.LastName), "LastName" },
                { new StringContent(string.IsNullOrEmpty(data.Email) ? "" : data.Email), "Email" },
                { new StringContent(string.IsNullOrEmpty(data.ClinicId) ? "" : data.ClinicId), "ClinicId" },
                { new StringContent(string.IsNullOrEmpty(data.ClinicName) ? "" : data.ClinicName), "ClinicName" },
                { new StringContent(string.IsNullOrEmpty(data.Title) ? "" : data.Title), "Title" },
                { new StringContent(string.IsNullOrEmpty(data.UserType.ToString()) ? "" : data.UserType.ToString()), "UserType" },
                { new StringContent(string.IsNullOrEmpty(data.AccessType.ToString()) ? "" : data.AccessType.ToString()), "AccessType" },
            };

            if (!string.IsNullOrEmpty(data.FileName))
            {
                multipart.Add(new ByteArrayContent(data.Images), "Image", data.FileName);
            }
            //if (!string.IsNullOrEmpty(data.Hash))
            //{
            //    multipart.Add(new StringContent(data.Hash), "hash");
            //}
            var result   = httpClient.PostAsync(new Uri(url), multipart).Result;
            var response = JsonConvert.DeserializeObject <ApiResponse>(result.Content.ReadAsStringAsync().Result);

            if (!(response.ErrorMessage == "SUCCESS"))
            {
                throw new ApiException(response.ErrorMessage, response.ErrorCode.ToString(), cultureCode.Name);
            }
            return(response.Result);
        }
Пример #14
0
        private static JObject[] CallApiArray(string url, HttpMethod httpMethod, ApiHeader apiHeader, object data)
        {
            var cultureCode   = Thread.CurrentThread.CurrentCulture;
            var clientHandler = new WebRequestHandler();

            clientHandler.ClientCertificates.Add(new X509Certificate2());
            var client = new HttpClient();
            var msg    = new HttpRequestMessage(httpMethod, url);

            if (apiHeader != null && string.IsNullOrEmpty(apiHeader.Lang))
            {
                msg.Headers.Add("userId", apiHeader.UserId);
                msg.Headers.Add("sessionId", apiHeader.SessionId);
            }
            if (!string.IsNullOrEmpty(apiHeader?.Lang))
            {
                msg.Headers.Add("lang", apiHeader.Lang);
            }
            else
            {
                msg.Headers.Add("lang", "en");
            }
            if (!string.IsNullOrEmpty(apiHeader?.Token))
            {
                msg.Headers.Add("token", apiHeader.Token);
            }
            if (httpMethod == HttpMethod.Post || httpMethod == HttpMethod.Put || httpMethod == HttpMethod.Delete)
            {
                var json = JsonConvert.SerializeObject(data);
                msg.Content = new StringContent(json);
                msg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            }

            var responseString = client.SendAsync(msg).Result.Content.ReadAsStringAsync().Result;

            if (!IsJsonString(responseString))
            {
                throw new ApiException(Resource.UnexpectedError);
            }

            var response = JsonConvert.DeserializeObject <ApiResponseArray>(responseString);

            if (!(response.ErrorMessage == "SUCCESS"))
            {
                throw new ApiException(response.ErrorMessage, response.ErrorCode.ToString(), cultureCode.Name);
            }
            return(response.Result);
        }
Пример #15
0
        private static JObject CallMultipartFormClinicApi(string url, ApiHeader apiHeader, HospitalModel data)
        {
            var cultureCode   = Thread.CurrentThread.CurrentCulture;
            var clientHandler = new WebRequestHandler();

            clientHandler.ClientCertificates.Add(new X509Certificate2());
            var httpClient = new HttpClient();

            if (apiHeader != null)
            {
                httpClient.DefaultRequestHeaders.Add("userId", apiHeader.UserId);
                httpClient.DefaultRequestHeaders.Add("sessionId", apiHeader.SessionId);
            }
            if (!string.IsNullOrEmpty(apiHeader?.Lang))
            {
                httpClient.DefaultRequestHeaders.Add("lang", apiHeader.Lang);
            }
            else
            {
                httpClient.DefaultRequestHeaders.Add("lang", "en");
            }
            var multipart = new MultipartFormDataContent
            {
                { new StringContent(string.IsNullOrEmpty(data.Id) ? "" : data.Id), "id" },
                { new StringContent(string.IsNullOrEmpty(data.ClinicName) ? "" : data.ClinicName), "name" },
                { new StringContent(string.IsNullOrEmpty(data.AddressLine1) ? "" : data.AddressLine1), "address" },
                { new StringContent(string.IsNullOrEmpty(data.AddressLine2) ? "" : data.AddressLine2), "address2" },
                { new StringContent(string.IsNullOrEmpty(data.PhoneNumber[0]) ? "" : data.PhoneNumber[0]), "phones" },
                { new StringContent(string.IsNullOrEmpty(data.Suburb) ? "" : data.Suburb), "suburb" },
                { new StringContent(string.IsNullOrEmpty(data.PostCode) ? "" : data.PostCode), "postCode" },
                { new StringContent(string.IsNullOrEmpty(data.SignUpStatus.ToString()) ? "" : data.SignUpStatus.ToString()), "signUpStatus" },
            };
            //if (!string.IsNullOrEmpty(data.FileName))
            //{
            //    multipart.Add(new ByteArrayContent(data.imagefile), "file", data.FileName);
            //}

            var result   = httpClient.PostAsync(new Uri(url), multipart).Result;
            var response = JsonConvert.DeserializeObject <ApiResponse>(result.Content.ReadAsStringAsync().Result);

            if (!response.Successed)
            {
                throw new ApiException(response.ErrorMessage, response.ErrorCode.ToString(), cultureCode.Name);
            }
            return(response.Result);
        }
Пример #16
0
 public IList <AppointmentResult> Get(ApiHeader apiHeader, int start = GlobalConstant.StartIndex,
                                      int length           = GlobalConstant.Length,
                                      string searchKeyword = null, SortType sortType = GlobalConstant.DefaultSortType)
 {
     throw new NotImplementedException();
 }
Пример #17
0
 public IList <AppointmentResult> GetAll(ApiHeader apiHeader)
 {
     throw new NotImplementedException();
 }
Пример #18
0
        public AppointmentResult GetById(ApiHeader apiHeader, string id)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.GetAppointmentById, id);

            return(Restful.Get(url, apiHeader).Get <AppointmentResult>(ApiKeyData.Appointment));
        }
Пример #19
0
 public void Delete(ApiHeader apiHeader, string id)
 {
     throw new NotImplementedException();
 }
Пример #20
0
 public AppointmentResult AddOrUpdate(ApiHeader apiHeader, AppointmentResult entity)
 {
     throw new NotImplementedException();
 }
Пример #21
0
 private static void ApiHeaderSaveMapper(ApiHeader apiHeader, DbApiHeader dbApiHeader)
 {
     dbApiHeader.Name  = apiHeader.Name;
     dbApiHeader.Value = apiHeader.Value;
 }
Пример #22
0
        private void CreatePassword(ApiHeader apiHeader, CreateNewPasswordModel model)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.ChangePassword;

            Restful.Post(url, apiHeader, model);
        }
Пример #23
0
 public UserModel GetById(ApiHeader apiHeader, string id)
 {
     throw new NotImplementedException();
 }
Пример #24
0
        public void ReOpenAccount(ApiHeader apiHeader, string userId, string hospitalId)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.ReOpenAccount, userId, hospitalId);

            Restful.Get(url, apiHeader);
        }
Пример #25
0
        public void ConfirmInviteUser(ApiHeader apiHeader, string hash, string email)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.ConfirmInvitationUser, hash, email);

            Restful.Get(url, apiHeader);
        }
Пример #26
0
 public static JObject PostMultipartFormPatient(string url, ApiHeader apiHeader, UpdatePatientModel model)
 {
     return(CallMultipartPatientFormApi(url, apiHeader, model));
 }
Пример #27
0
 public IList <UserModel> GetAll(ApiHeader apiHeader)
 {
     throw new NotImplementedException();
 }
Пример #28
0
 public UserModel AddOrUpdate(ApiHeader apiHeader, UserModel entity)
 {
     throw new NotImplementedException();
 }
Пример #29
0
        public void FinishCall(ApiHeader apiHeader, string id, int status)
        {
            var url = ApiUrl.Default.RootApi + string.Format(ApiUrl.Default.CallStatus, id, status);

            Restful.Get(url, apiHeader);
        }
Пример #30
0
        public void SetPassword(ApiHeader apiHeader, string password)
        {
            var url = ApiUrl.Default.RootApi + ApiUrl.Default.SetPasswordForSignUp;

            Restful.Post(url, apiHeader, new { newPassword = password });
        }