private Preparation TranslatePreparationGPToLocal(Generated.Preparation prepGP)
        {
            Preparation prepLocal = new Preparation();

            try
            {
                if (prepGP != null)
                {
                    prepLocal.Description             = prepGP.Description;
                    prepLocal.DescriptionAbbreviation = prepGP.DescriptionAbbreviation;
                    prepLocal.IsPreparation           = prepGP.IsPreparation.HasValue ? prepGP.IsPreparation.Value : true;
                    prepLocal.LocalEpisodeType        = prepGP.LocalEpisodeType;
                    prepLocal.LocalEpisodeId          = prepGP.LocalEpisodeId;
                    prepLocal.LocalServiceId          = prepGP.LocalServiceId;
                    prepLocal.NumCopies = prepGP.NumCopies.HasValue ? prepGP.NumCopies.Value : 1;
                    prepLocal.PreparationDocumentLoaded = prepGP.PreparationDocumentLoaded.HasValue ? prepGP.PreparationDocumentLoaded.Value : false;
                    prepLocal.PreparationDocument       = prepGP.PreparationDocument;
                    prepLocal.Template = prepGP.Template;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Erro a realizar o convert de Preparation (GP) para Preparation (local)");
            }

            return(prepLocal);
        }
        private Generated.Preparation TranslatePreparationLocalToGP(Preparation prepLocal)
        {
            Generated.Preparation prepGP = new Generated.Preparation();
            try
            {
                if (prepLocal != null)
                {
                    prepGP.Description             = prepLocal.Description;
                    prepGP.DescriptionAbbreviation = prepLocal.DescriptionAbbreviation;
                    prepGP.IsPreparation           = prepLocal.IsPreparation;
                    prepGP.LocalEpisodeType        = prepLocal.LocalEpisodeType;
                    prepGP.LocalEpisodeId          = prepLocal.LocalEpisodeId;
                    prepGP.LocalServiceId          = prepLocal.LocalServiceId;
                    prepGP.NumCopies = prepLocal.NumCopies;
                    prepGP.PreparationDocumentLoaded = prepLocal.PreparationDocumentLoaded;
                    prepGP.PreparationDocument       = prepLocal.PreparationDocument;
                    prepGP.Template = prepLocal.Template;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Erro a realizar o convert de Preparation (Local) para Preparation (GP)");
            }

            return(prepGP);
        }
        public async Task <ServiceReturn <Preparation> > GetLoadPreparationObjectAsync(AuthenticationType tipoAuth, Preparation prep, string facilityId, string IdAppointment, string successMessage = "", string errorMessage = "")
        {
            var uiMessages = new Dictionary <string, string>();

            if (!string.IsNullOrEmpty(errorMessage))
            {
                uiMessages.Add(ServiceReturnHandling.GenericMessageKey, errorMessage);
            }
            else
            {
                uiMessages.Add(ServiceReturnHandling.GenericMessageKey, "Não é possível obter lista de preparações");
            }

            if (!string.IsNullOrEmpty(successMessage))
            {
                uiMessages.Add(ServiceReturnHandling.SuccessMessageKey, successMessage);
            }

            try
            {
                string baseUrl = await CommunicationManager.ServiceManager.GetServiceEndpoint("GP_BASE_URL");

                Generated.AppointmentClient sc     = new Generated.AppointmentClient(baseUrl, await CommunicationManager.Instance.GetHttpClientWithToken(tipoAuth, new HttpClient()));
                Generated.Preparation       prepGP = TranslatePreparationLocalToGP(prep);
                ObservableCollection <Generated.Preparation> tmp = new ObservableCollection <Generated.Preparation>(new List <Generated.Preparation>()
                {
                    prepGP
                });
                var prepFinal = await sc.LoadLocalPreparationsDocumentsAsync(tmp, facilityId, User.UserId, string.Empty, GetGPAppVersion());

                if (prepFinal != null)
                {
                    prep = TranslatePreparationGPToLocal(prepFinal.First());
                }

                return(ServiceReturnHandling.BuildSuccessCallReturn <Preparation>(prep, uiMessages));
            }
            catch (Exception ex)
            {
                return(ServiceReturnHandling.HandleException <Preparation>(ex, uiMessages));
            }
        }