public override async Task OnNavigatedToAsync(INavigationParameters parameters)
        {
            Request = parameters.GetValue <EvlRequestItemSource>(nameof(Request));

            EvlRequestExpertDto expertDto = null;

            try
            {
                expertDto = await _evlRequestService.FindEvlRequestExpert(Request.Id);

                Request.Code = expertDto.FileID;
            }
            catch (System.Exception)
            {
            }

            if (expertDto?.Expert == null)
            {
                await _dialogService.DisplayAlertAsync(ConstantStrings.Error, ConstantStrings.FindNearExpertError + System.Environment.NewLine + Request.Code, ConstantStrings.Ok);

                await NavigationService.NavigateAsync($"/{nameof(NavigationPage)}/{nameof(MainMenuView)}");
            }
            else
            {
                await NavigationService.NavigateAsync($"/{nameof(NavigationPage)}/{nameof(EvaluationRequestExpertView)}", new NavigationParameters
                {
                    { "Expert", expertDto },
                    { nameof(Request), Request }
                });
            }
        }
Exemple #2
0
        public override async Task OnNavigatingToAsync(INavigationParameters parameters)
        {
            _evlRequest = parameters.GetValue <EvlRequestItemSource>(nameof(EvlRequestItemSource));

            Message         = ConstantStrings.ExpertFinding;
            IsVisibleBefore = true;
            IsVisibleAfter  = false;
            string result = null;

            EvlRequestExpertDto expertDto = await _evlRequestService.FindEvlRequestExpert(_evlRequest.Id);

            try
            {
                CustomerDto customer = await _initialDataService.GetCurrentUserInfo();

                FindExpertRequestDto findExpertDto = new FindExpertRequestDto();
                findExpertDto.UserID          = customer.Id.ToString();
                findExpertDto.RequestID       = _evlRequest.Id.ToString();
                findExpertDto.Type            = _evlRequest.InsuranceType == InsuranceType.Sales ? 2 : 1;
                findExpertDto.AccidentDate    = _dateTimeUtils.ConvertMiladiToShamsi(DateTimeOffset.Now);
                findExpertDto.MapLat          = _evlRequest.Latitude.ToString();
                findExpertDto.MapLng          = _evlRequest.Longitude.ToString();
                findExpertDto.LostName        = _evlRequest.LostFirstName;
                findExpertDto.LostFamily      = _evlRequest.LostLastName;
                findExpertDto.LostInsuranceID = 1;     // 1
                findExpertDto.LostCarID       = _evlRequest.LostCarId;
                findExpertDto.LostCarType     = "415"; // 415
                findExpertDto.Address         = "یوسف آباد کوچه هفتم";
            }
            catch (Exception ex)
            {
                await NavigationService.NavigateAsync($"/{nameof(NavigationPage)}/{nameof(MainMenuView)}");

                await _pageDialogService.DisplayAlertAsync("", ConstantStrings.FindNearExpertError, ErrorMessages.Ok);
            }

            if (result == "NotResult")
            {
                await NavigationService.NavigateAsync($"/{nameof(NavigationPage)}/{nameof(MainMenuView)}");

                await _pageDialogService.DisplayAlertAsync("", ConstantStrings.FindNearExpertNotResult, ErrorMessages.Ok);

                return;
            }


            IsVisibleBefore = false;
            IsVisibleAfter  = true;
            Message         = ConstantStrings.ExpertFind;
            if (result != null)
            {
                string[] res = result.Split('^');
                ExpertFullName = res[0];
                ExpertMobileNo = res[1];
                byte[] imageAsBytes = Convert.FromBase64String(res[2].Split(',')[1]);
                ExpertImage = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));
            }

            await base.OnNavigatingToAsync(parameters);
        }
        public async Task LoginAndSubmitNewEvlRequestAndFindExpertForItTest()
        {
            using (SanaapTestEnvironment testEnv = new SanaapTestEnvironment())
            {
                TokenResponse token = await testEnv.Server.Login("1270340050", "09033610498", "SanaapResOwner", "secret");

                HttpClient httpClient = testEnv.Server.BuildHttpClient(token);

                MultipartFormDataContent content = new MultipartFormDataContent
                {
                    //new StringContent(JsonConvert.SerializeObject(new EvlRequestDto
                    //{
                    //    AccidentDate = DateTimeOffset.UtcNow,
                    //    CompanyId = 1,
                    //    AccidentReason = "Test",
                    //    InsuranceNumber = "123-456",
                    //    InsuranceTypeEnum = InsuranceType.Sales,
                    //    Latitude = 12,
                    //    Longitude = 12,
                    //    VehicleKindId = 1,
                    //    VehicleNumber = "ایران - ب 44 678"
                    //}), Encoding.UTF8, "application/json"),

                    { new StreamContent(File.OpenRead(@"C:\Users\SOFT\Desktop\Mohammad.png")), Guid.Parse("9bbd650e-3415-494d-b382-623a0840ab5a").ToString(), Guid.Parse("9bbd650e-3415-494d-b382-623a0840ab5a").ToString() }
                };

                HttpRequestMessage submitEvlRequest = new HttpRequestMessage(HttpMethod.Post, "api/evl-requests/submit-evl-request")
                {
                    Content = content
                };

                HttpResponseMessage submitEvlRequestExpertResponse = await httpClient.SendAsync(submitEvlRequest);

                submitEvlRequestExpertResponse.EnsureSuccessStatusCode();

                EvlRequestDto evlRequest = JsonConvert.DeserializeObject <EvlRequestDto>(await submitEvlRequestExpertResponse.Content.ReadAsStringAsync());

                IODataClient odataClient = testEnv.Server.BuildODataClient(odataRouteName: "Sanaap", token: token);

                EvlRequestExpertDto evlRequestExpert = await odataClient.Controller <EvlRequestExpertsController, EvlRequestExpertDto>()
                                                       .Function(nameof(EvlRequestExpertsController.FindEvlRequestExpert))
                                                       .Set(new { evlRequestId = evlRequest.Id })
                                                       .FindEntryAsync();

                evlRequestExpert = await odataClient.Controller <EvlRequestExpertsController, EvlRequestExpertDto>()
                                   .Function(nameof(EvlRequestExpertsController.FindEvlRequestExpert))
                                   .Set(new { evlRequestId = evlRequest.Id })
                                   .FindEntryAsync();
            }
        }