public void CustomerProvider_CustomData_Upsert()
        {
            IntegrationPlatform.Models.Integration.CustomDataModel oCustomDataModel = new Models.Integration.CustomDataModel()
            {
                CustomData = new List <ProveedoresOnLine.Company.Models.Util.GenericItemModel>()
                {
                    new ProveedoresOnLine.Company.Models.Util.GenericItemModel()
                    {
                        ItemId   = 0,
                        ItemType = new ProveedoresOnLine.Company.Models.Util.CatalogModel()
                        {
                            ItemId = 1,
                        },
                        ItemInfo = new List <ProveedoresOnLine.Company.Models.Util.GenericItemInfoModel>()
                        {
                            new ProveedoresOnLine.Company.Models.Util.GenericItemInfoModel()
                            {
                                ItemInfoId = 0,
                                Value      = "Texto de prueba dll 1.0",
                                Enable     = true,
                            },
                        },
                        Enable = true,
                    }
                },
                RelatedCompany = new ProveedoresOnLine.Company.Models.Company.CompanyModel()
                {
                    CompanyPublicId = "7BC27832",
                },
            };

            oCustomDataModel = IntegrationPlatform.Controller.IntegrationPlatform.CustomerProvider_CustomData_Upsert(oCustomDataModel, "F5112365");

            Assert.AreEqual(true, oCustomDataModel.CustomData != null && oCustomDataModel.CustomData.Count > 0);
        }
        public static Models.Integration.CustomDataModel CustomerProvider_CustomData_Upsert(Models.Integration.CustomDataModel CustomData, string ProviderPublicId)
        {
            string RelatedCustomer = CustomData.RelatedCompany.CompanyPublicId;

            switch (RelatedCustomer)
            {
            case Models.Constants.C_POL_CustomerPublicId_Sanofi:     //SANOFI

                #region Custom Data

                if (CustomData.CustomData != null &&
                    CustomData.CustomData.Count > 0)
                {
                    CustomData.CustomData.All(dt =>
                    {
                        LogManager.Models.LogModel oLog = ProveedoresOnLine.Company.Controller.Company.GetGenericLogModel();
                        try
                        {
                            dt.ItemId = DAL.Controller.IntegrationPlatformDataController.Instance.Sanofi_AditionalData_Upsert(
                                dt.ItemId,
                                ProviderPublicId,
                                dt.ItemType != null ? dt.ItemType.ItemId : 0,
                                dt.ItemName,
                                dt.Enable);

                            dt = CustomerProvider_Sanofi_CustomDataInfo_Upsert(dt);

                            oLog.IsSuccess = true;
                        }
                        catch (Exception err)
                        {
                            oLog.IsSuccess = false;
                            oLog.Message   = err.Message + " - " + err.StackTrace;

                            throw err;
                        }
                        finally
                        {
                            oLog.LogObject = dt;

                            oLog.RelatedLogInfo.Add(new LogManager.Models.LogInfoModel()
                            {
                                LogInfoType = "CustomData",
                                Value       = dt.ItemId.ToString(),
                            });

                            LogManager.ClientLog.AddLog(oLog);
                        }

                        return(true);
                    });
                }

                #endregion

                break;

            case Models.Constants.C_POL_CustomerPublicId_Publicar:     //Publicar publicidad multimedia s.a.s.

                #region Custom Data

                if (CustomData.CustomData != null &&
                    CustomData.CustomData.Count > 0)
                {
                    CustomData.CustomData.All(dt =>
                    {
                        LogManager.Models.LogModel oLog = ProveedoresOnLine.Company.Controller.Company.GetGenericLogModel();
                        try
                        {
                            dt.ItemId = DAL.Controller.IntegrationPlatformDataController.Instance.Publicar_AditionalData_Upsert(
                                dt.ItemId,
                                ProviderPublicId,
                                dt.ItemType != null ? dt.ItemType.ItemId : 0,
                                dt.ItemName,
                                dt.Enable);

                            dt = CustomerProvider_Publicar_CustomDataInfo_Upsert(dt);

                            oLog.IsSuccess = true;
                        }
                        catch (Exception err)
                        {
                            oLog.IsSuccess = false;
                            oLog.Message   = err.Message + " - " + err.StackTrace;

                            throw err;
                        }
                        finally
                        {
                            oLog.LogObject = dt;

                            oLog.RelatedLogInfo.Add(new LogManager.Models.LogInfoModel()
                            {
                                LogInfoType = "CustomData",
                                Value       = dt.ItemId.ToString(),
                            });

                            LogManager.ClientLog.AddLog(oLog);
                        }

                        return(true);
                    });
                }

                #endregion

                break;
            }

            return(CustomData);
        }