/// <summary>
        /// Get Occurrence Model for Update
        /// </summary>
        /// <param name="occurrenceId"></param>
        /// <returns></returns>
        public async Task <ActionResult> GetUpdateOccurrence(int?occurrenceId)
        {
            OccurrenceFormData occurrenceFormData = new OccurrenceFormData
            {
                TranslationsList = new List <OccurrenceTranslationFormData>()
            };

            if (occurrenceId.HasValue)
            {
                OccurrenceRequestData findOccurrenceRequest = new OccurrenceRequestData
                {
                    OccurrenceDto = new OccurrenceItemData {
                        OccurrenceId = occurrenceId.Value
                    },
                    FindOccurrenceDto = FindOccurrenceItemData.OccurrenceId
                };
                OccurrenceResultData resultOccurrence =
                    await WebApiClient.PostFormJsonAsync <OccurrenceRequestData, OccurrenceResultData>(
                        Constant.WebApiControllerOccurrences, Constant.WebApiFindOccurrences, findOccurrenceRequest);

                if (resultOccurrence != null && resultOccurrence.OperationSuccess && resultOccurrence.OccurrenceDto != null)
                {
                    occurrenceFormData = resultOccurrence.OccurrenceDto.ToFormData();
                    OccurrenceTranslationRequestData findOccurrenceTranslationRequest = new OccurrenceTranslationRequestData()
                    {
                        OccurrenceTranslationDto = new OccurrenceTranslationItemData {
                            OccurrenceId = occurrenceId.Value
                        },
                        FindOccurrenceTranslationDto = FindOccurrenceTranslationItemData.OccurrenceId
                    };
                    OccurrenceTranslationResultData resultOccurrenceTranslation =
                        await WebApiClient
                        .PostFormJsonAsync <OccurrenceTranslationRequestData, OccurrenceTranslationResultData>(
                            Constant.WebApiControllerOccurrences, Constant.WebApiFindOccurrenceTranslations,
                            findOccurrenceTranslationRequest);

                    if (resultOccurrenceTranslation != null && resultOccurrenceTranslation.OperationSuccess && resultOccurrenceTranslation.OccurrenceTranslationDtoList != null)
                    {
                        occurrenceFormData.TranslationsList = resultOccurrenceTranslation.OccurrenceTranslationDtoList.ToFormDataList();
                    }
                }
            }
            ViewBag.Action = "UpdateOccurrence";
            return(PartialView("Partials/_ManageOccurrence", occurrenceFormData));
        }
        /// <summary>
        /// Find the occurrence translations
        /// </summary>
        /// <param name="occurrenceId">the occurrence id to search.</param>
        /// <returns>the transalations</returns>
        private async Task <List <OccurrenceTranslationItemData> > GetOccurrenceTranslations(int occurrenceId)
        {
            List <OccurrenceTranslationItemData> translationsList = new List <OccurrenceTranslationItemData>();
            OccurrenceTranslationRequestData     findOccurrenceTranslationRequest = new OccurrenceTranslationRequestData()
            {
                OccurrenceTranslationDto = new OccurrenceTranslationItemData {
                    OccurrenceId = occurrenceId
                },
                FindOccurrenceTranslationDto = FindOccurrenceTranslationItemData.OccurrenceId
            };
            OccurrenceTranslationResultData resultOccurrenceTranslation = await WebApiClient.PostFormJsonAsync <OccurrenceTranslationRequestData, OccurrenceTranslationResultData>(Constant.WebApiControllerOccurrences, Constant.WebApiFindOccurrenceTranslations, findOccurrenceTranslationRequest);

            if (resultOccurrenceTranslation != null && resultOccurrenceTranslation.OperationSuccess && resultOccurrenceTranslation.OccurrenceTranslationDtoList != null)
            {
                translationsList.AddRange(resultOccurrenceTranslation.OccurrenceTranslationDtoList);
            }
            return(translationsList);
        }
        public async Task <OmsJsonResult> UpdateOccurrence(OccurrenceFormData occurrenceFormData)
        {
            JsonReturnData data = new JsonReturnData();

            if (ModelState.IsValid)
            {
                OccurrenceRequestData request          = occurrenceFormData.ToRequestData();
                OccurrenceResultData  occurrenceResult =
                    await WebApiClient.PostFormJsonAsync <OccurrenceRequestData, OccurrenceResultData>(
                        Constant.WebApiControllerOccurrences, Constant.WebApiUpdateOccurrence, request);

                if (occurrenceResult != null && occurrenceResult.OperationSuccess)
                {
                    OccurrenceTranslationRequestData occurrenceTranslationRequestData = new OccurrenceTranslationRequestData
                    {
                        OccurrenceTranslationDtoList = occurrenceFormData.TranslationsList.ToItemDataList()
                    };

                    OccurrenceTranslationResultData occurrenceTranslationResultData =
                        await WebApiClient
                        .PostFormJsonAsync <OccurrenceTranslationRequestData, OccurrenceTranslationResultData>(
                            Constant.WebApiControllerOccurrences, Constant.WebApiUpdateOccurrenceTranslationRange,
                            occurrenceTranslationRequestData);

                    if (occurrenceTranslationResultData == null)
                    {
                        data.ErrorMessage     = SharedResources.ServerError;
                        data.OperationSuccess = false;
                    }
                    else if (!occurrenceTranslationResultData.OperationSuccess && occurrenceTranslationResultData.Errors != null && occurrenceTranslationResultData.Errors.Count > 0)
                    {
                        data.ErrorMessage     = occurrenceTranslationResultData.Errors.First();
                        data.OperationSuccess = false;
                    }
                    else if (occurrenceTranslationResultData.OperationSuccess)
                    {
                        data.SuccessMessage   = UserResources.Ok;
                        data.OperationSuccess = true;
                    }
                }
                else if (occurrenceResult == null)
                {
                    data.ErrorMessage     = SharedResources.ServerError;
                    data.OperationSuccess = false;
                }
                else if (!occurrenceResult.OperationSuccess && occurrenceResult.Errors != null && occurrenceResult.Errors.Count > 0)
                {
                    data.ErrorMessage     = occurrenceResult.Errors.First();
                    data.OperationSuccess = false;
                }
                else if (occurrenceResult.OperationSuccess)
                {
                    data.SuccessMessage   = UserResources.Ok;
                    data.OperationSuccess = true;
                }
            }
            else
            {
                data = new JsonReturnData
                {
                    ErrorMessage     = OccurrenceResources.RequiredFields,
                    OperationSuccess = false
                };
            }
            return(new OmsJsonResult(data));
        }