public static SalesForceChange BuildSalesForceType(Change change)
        {
            string ext      = Path.GetExtension(change.Path);
            string filename = Path.GetFileName(change.Path);

            SalesForceType @type = SalesForceType.Unknown;

            if (ext != null && MapSalesForceTypes.TryGetValue(ext, out @type))
            {
                return(new SalesForceChange
                {
                    FileName = filename,
                    ChangeType = change.Status,
                    SalesForceType = @type
                });
            }

            return(null);
        }
Exemple #2
0
        private ActionResult RerunOneSalesForce(SafeReader sf, bool bRowSetStart)
        {
            try {
                int    salesForceLogID = sf["SalesForceLogID"];
                string typeStr         = sf["Type"];
                string modelStr        = sf["Model"];

                SalesForceType type = typeStr.ParseEnum <SalesForceType>();
                switch (type)
                {
                case SalesForceType.AddActivity:
                    var aModel = modelStr.JsonStringToObject <ActivityModel>();
                    this.sfClient.CreateActivity(aModel);


                    break;

                case SalesForceType.AddOpportunity:
                    var oModel = modelStr.JsonStringToObject <OpportunityModel>();
                    if (string.IsNullOrEmpty(oModel.Name))
                    {
                        oModel.Name = oModel.Email + "rerun";
                    }
                    this.sfClient.CreateOpportunity(oModel);
                    break;

                case SalesForceType.AddTask:
                    var tModel = modelStr.JsonStringToObject <TaskModel>();
                    this.sfClient.CreateTask(tModel);
                    break;

                case SalesForceType.AddUpdateContact:
                    var cModel = modelStr.JsonStringToObject <ContactModel>();
                    this.sfClient.CreateUpdateContact(cModel);
                    break;

                case SalesForceType.AddUpdateLeadAccount:
                    var lModel = modelStr.JsonStringToObject <LeadAccountModel>();
                    if (!string.IsNullOrEmpty(lModel.LeadSource) && lModel.LeadSource.Length > 40)
                    {
                        lModel.LeadSource = lModel.LeadSource.Substring(0, 40);
                    }
                    this.sfClient.CreateUpdateLeadAccount(lModel);
                    break;

                case SalesForceType.UpdateOpportunity:
                    var o2Model = modelStr.JsonStringToObject <OpportunityModel>();
                    this.sfClient.UpdateOpportunity(o2Model);
                    break;

                default:
                    Log.Warn("Unknown type");
                    break;
                }

                UpdateStatus(salesForceLogID);
                Thread.Sleep(100);
            } catch (Exception ex) {
                Log.Error("Failed to rerun " + sf["SalesForceLogID"], ex);
                //
            }
            return(ActionResult.Continue);
        }