public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "div";
            Fragment fragment = await _fragmentResolver.ResolveAsync(Name);

            var fragmentOptions = _fragmentOptionsProvider.GetFragmentOptions(fragment);

            var fragmentContext = new FragmentContext
            {
                Fragment        = fragment,
                OutputStream    = ViewContext.HttpContext.Response.Body,
                Model           = Model,
                FragmentOptions = fragmentOptions
            };

            _fragmentContextProvider.AddContext(fragmentContext);

            _fragmentLogger.Info($"Executing fragment {Name}. Model : {JsonConvert.SerializeObject(fragmentContext.Model)}");

            var placeHolderViewName = fragmentOptions?.PlaceHolderViewName;

            if (fragmentOptions?.IsSync == true || fragmentOptions?.IsSyncOnAjax == true && IsAjaxRequest(ViewContext.HttpContext.Request))
            {
                output.SuppressOutput();
                throw new NotImplementedException("Sync fragments are not implemented yet.");
            }
            else
            {
                fragmentContext.PlaceHolderId = Guid.NewGuid().ToString();

                var placeHolderHtml = string.IsNullOrEmpty(placeHolderViewName) ? await fragment.GetPlaceHolderHtmlAsync() : await _viewRenderer.RenderAsync(placeHolderViewName, null);

                if (string.IsNullOrEmpty(placeHolderHtml) == false)
                {
                    output.Content.SetHtmlContent(placeHolderHtml);
                }

                output.Attributes.SetAttribute(Constants.HtmlIdAttribute, fragmentContext.PlaceHolderId);
                output.TagMode = TagMode.StartTagAndEndTag;
            }
        }
Ejemplo n.º 2
0
            private async void _btnNext_Click(object sender, EventArgs e)
            {
                switch (Arguments.GetInt(ArgSectionNumber))
                {
                case 1:
                    if (_imageValidator)
                    {
                        FragmentContext._viewPager.CurrentItem =
                            Arguments.GetInt(ArgSectionNumber);
                    }
                    else
                    {
                        Toast.MakeText(FragmentContext, "Alegeti o imagine!", ToastLength.Short)
                        .Show();
                    }
                    break;

                case 2:
                    if (!string.IsNullOrEmpty(FragmentContext._firstSetupModel.Gender) && !string.IsNullOrEmpty(FragmentContext._firstSetupModel.DateOfBirth))
                    {
                        FragmentContext._viewPager.CurrentItem = Arguments.GetInt(ArgSectionNumber);
                    }
                    else
                    {
                        Toast.MakeText(FragmentContext, "Va rugam sa completati formularul", ToastLength.Short)
                        .Show();
                    }
                    break;

                case 3:
                    FragmentContext._progressBarDialog.Show();
                    FragmentContext._firstSetupModel.ImageName =
                        Utils.GetDefaults("Email");


                    foreach (SearchListModel el in _selectedDiseases)
                    {
                        if (!el.IsSelected)
                        {
                            continue;
                        }
                        FragmentContext._firstSetupModel.Disease.Add(el.Id);
                        listOfPersonalDiseases.Add(new PersonalDisease(el.Id, el.Title));
                    }
                    await Task.Run(async() =>
                    {
                        string jsonData =
                            JsonConvert.SerializeObject(FragmentContext._firstSetupModel);

                        Log.Error("data to send", jsonData);

                        string response = await WebServices.WebServices.Post(
                            Constants.PublicServerAddress + "/api/firstSetup",
                            new JSONObject(jsonData), Utils.GetDefaults("Token"));
                        if (response != null)
                        {
                            Snackbar snack;
                            var responseJson = new JSONObject(response);
                            switch (responseJson.GetInt("status"))
                            {
                            case 0:
                                snack = Snackbar.Make(FragmentContext._mainContent,
                                                      "Wrong Data", Snackbar.LengthLong);
                                snack.Show();
                                break;

                            case 1:
                                snack = Snackbar.Make(FragmentContext._mainContent,
                                                      "Internal Server Error", Snackbar.LengthLong);
                                snack.Show();
                                break;

                            case 2:



                                Utils.SetDefaults("Logins", true.ToString());
                                Utils.SetDefaults("Avatar",
                                                  $"{Constants.PublicServerAddress}/{Utils.GetDefaults("Email")}.{FragmentContext._firstSetupModel.ImageExtension}");


                                await SaveProfileData();


                                createSimpleChannelForServices();
                                createNonstopChannelForServices();

                                if (int.Parse(Utils.GetDefaults("UserType")) == 3)
                                {
                                    var _medicationServerServiceIntent = new Intent(Application.Context, typeof(MedicationServerService));
                                    Activity.StartService(_medicationServerServiceIntent);
                                }

                                FragmentContext.StartActivity(typeof(MainActivity));
                                FragmentContext.Finish();
                                break;
                            }
                        }
                        else
                        {
                            var snack = Snackbar.Make(FragmentContext._mainContent,
                                                      "Unable to reach the server!", Snackbar.LengthLong);
                            snack.Show();
                        }
                    });

                    FragmentContext._progressBarDialog.Dismiss();

                    break;
                }
            }