Ejemplo n.º 1
0
    public Int64 UpdateHostWithContacts(EProspect prospect, string userID, string shell, string role)
    {
        FranchisorDAL franchisorDAL   = new FranchisorDAL();
        Int64         returnresult    = franchisorDAL.SaveHost(prospect, Convert.ToInt32(EOperationMode.Update), userID, shell, role);
        Int64         ContctID        = 0;
        Int64         returnContactID = 0;
        int           prospectid      = 0;

        if (returnresult == 0)
        {
            prospectid = Convert.ToInt32(prospect.ProspectID);

            // Save prospect details
            if (prospect.ProspectDetails != null)
            {
                franchisorDAL.SaveProspectDetails(prospect.ProspectDetails, prospectid);
            }

            if (prospect.Contact != null && prospect.Contact.Count > 0)
            {
                for (int i = 0; i < prospect.Contact.Count; i++)
                {
                    if (prospect.Contact[i].IsDeleted == false)
                    {
                        //returnContactID = franchisorDAL.SaveNewProspectContact(prospect.Contact[i], 2, prospectid, Convert.ToInt32(userID));
                        if (prospect.Contact[i].ContactID > 0)
                        {
                            returnContactID = franchisorDAL.SaveContact(prospect.Contact[i], Convert.ToInt32(EOperationMode.Update), Convert.ToInt32(userID));
                            if (returnContactID >= 0)
                            {
                                returnContactID = prospect.Contact[i].ContactID;
                            }
                            else
                            {
                                returnContactID = -1;
                            }
                        }
                        else
                        {
                            returnContactID = franchisorDAL.SaveContact(prospect.Contact[i], Convert.ToInt32(EOperationMode.Insert), Convert.ToInt32(userID));
                        }

                        if (returnContactID > 0)
                        {
                            franchisorDAL.SaveProspectContact(returnContactID, prospectid, true);
                            franchisorDAL.SaveProspectContactRoleMapping(prospect.Contact[i].ListProspectContactRole, returnContactID, prospectid);
                        }
                    }
                    else
                    {
                        //Delete the same record
                        franchisorDAL.SaveProspectContact(prospect.Contact[i].ContactID, prospectid, false);
                    }
                }
            }
            if (ContctID > 0 || prospectid > 0 && (prospect.ContactMeeting != null))
            {
                prospect.ContactMeeting.ProspectID        = prospectid;
                prospect.ContactMeeting.Contact.ContactID = Convert.ToInt32(returnContactID);
                franchisorDAL.SaveMeeting(prospect.ContactMeeting, Convert.ToInt32(EOperationMode.Insert));
            }
        }
        return(returnresult);
    }