/// <summary>
        /// To delete Merge Solution records.
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="sourceControlQueue">Dynamic Source Control entity GUID</param>
        /// <param name="tracingService">Tracing Service to trace error</param>
        public static void CreateSolutionDetail(IOrganizationService service, syed_sourcecontrolqueue sourceControlQueue, ITracingService tracingService)
        {
            //Copy feilds from Template Record.
            EntityCollection copyDynamicsTemplate = SolutionHelper.RetrieveDynamicsSourceControlTemplate(service, tracingService);

            foreach (syed_sourcecontrolqueue syed_Sourcecontrolqueue in copyDynamicsTemplate.Entities)
            {
                syed_sourcecontrolqueue _sourcecontrolqueue = new syed_sourcecontrolqueue();
                _sourcecontrolqueue.syed_Branch        = syed_Sourcecontrolqueue.syed_Branch;
                _sourcecontrolqueue.syed_RemoteName    = syed_Sourcecontrolqueue.syed_RemoteName;
                _sourcecontrolqueue.syed_RepositoryUrl = syed_Sourcecontrolqueue.syed_RepositoryUrl;
                _sourcecontrolqueue.syed_SourceControl = syed_Sourcecontrolqueue.syed_SourceControl;
                _sourcecontrolqueue.Id = sourceControlQueue.Id;
                _sourcecontrolqueue.syed_IsShedulled           = syed_Sourcecontrolqueue.syed_IsShedulled;
                _sourcecontrolqueue.syed_overwritesolutionstxt = syed_Sourcecontrolqueue.syed_overwritesolutionstxt;
                service.Update(_sourcecontrolqueue);
                break;
            }

            //Copy Master Solution Record from Template.
            EntityCollection copyTemplate = SolutionHelper.RetrieveMasterSolutionTemplate(service, tracingService);

            foreach (syed_solutiondetail solutionDetail in copyTemplate.Entities)
            {
                ExecuteOperations.CreateSolutionDetail(service, solutionDetail, sourceControlQueue);
                break;
            }

            EntityCollection crmSolution = SolutionHelper.RetrieveMasterSolutionById(service, sourceControlQueue.syed_CheckInBySolutionId, tracingService);

            if (crmSolution.Entities.Count > 0)
            {
                foreach (syed_mastersolutions mastersolutions in crmSolution.Entities)
                {
                    ExecuteOperations.CreateSolutionDetail(service, mastersolutions, sourceControlQueue);
                    break;
                }
            }
            else
            {
                EntityCollection solutionCollection = SolutionHelper.RetrieveSolutionById(service, new Guid(sourceControlQueue.syed_CheckInBySolutionId), tracingService);
                foreach (Solution sol in solutionCollection.Entities)
                {
                    Guid id = ExecuteOperations.CreateMasterSolution(service, sol);
                    syed_mastersolutions syed_Mastersolutions = service.Retrieve(syed_mastersolutions.EntityLogicalName.ToString(), id, new ColumnSet(true)).ToEntity <syed_mastersolutions>();
                    ExecuteOperations.CreateSolutionDetail(service, syed_Mastersolutions, sourceControlQueue);
                    break;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Method creates Custom entity CRM Solution Record
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="solution">CRM Solution</param>
        /// <returns>returns GUID of newly created Custom entity CRM Solution</returns>
        public static Guid CreateMasterSolution(IOrganizationService service, Solution solution)
        {
            syed_mastersolutions masterSolutionUpdate = new syed_mastersolutions();

            masterSolutionUpdate.syed_name                = solution.FriendlyName;
            masterSolutionUpdate.syed_FriendlyName        = solution.FriendlyName;
            masterSolutionUpdate.syed_Publisher           = solution.PublisherId.Name;
            masterSolutionUpdate.syed_ListofSolutions     = solution.UniqueName.ToString();
            masterSolutionUpdate.syed_SolutionId          = solution.Id.ToString();
            masterSolutionUpdate.syed_SolutionInstalledOn = solution.InstalledOn;
            masterSolutionUpdate.syed_Version             = solution.Version;
            masterSolutionUpdate.syed_IsManaged           = solution.IsManaged;
            Guid id = service.Create(masterSolutionUpdate);

            return(id);
        }
예제 #3
0
        /// <summary>
        /// Method creates Master Solution Record
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="mastersolutions">CRM Solution</param>
        /// <param name="syed_Sourcecontrolqueue">Dynamics Source control</param>
        public static void CreateSolutionDetail(IOrganizationService service, syed_mastersolutions mastersolutions, syed_sourcecontrolqueue syed_Sourcecontrolqueue)
        {
            syed_solutiondetail solutiondetail = new syed_solutiondetail();

            solutiondetail.syed_CRMSolutionsId      = new EntityReference(mastersolutions.LogicalName.ToString(), mastersolutions.Id);
            solutiondetail.syed_ListofSolutionId    = new EntityReference(syed_Sourcecontrolqueue.LogicalName.ToString(), syed_Sourcecontrolqueue.Id);
            solutiondetail.syed_friendlyname        = mastersolutions.syed_FriendlyName;
            solutiondetail.syed_Publisher           = mastersolutions.syed_Publisher;
            solutiondetail.syed_SolutionInstalledOn = mastersolutions.syed_SolutionInstalledOn;
            solutiondetail.syed_Version             = mastersolutions.syed_Version;
            solutiondetail.syed_IsManaged           = mastersolutions.syed_IsManaged;
            solutiondetail.syed_SolutionId          = mastersolutions.syed_SolutionId;
            solutiondetail.syed_ListofSolutions     = mastersolutions.syed_ListofSolutions;
            solutiondetail.syed_ExportAs            = false;
            solutiondetail.syed_Order = 0;
            solutiondetail.syed_name  = mastersolutions.syed_FriendlyName;
            service.Create(solutiondetail);

            syed_sourcecontrolqueue sourcecontrolqueue = new syed_sourcecontrolqueue();

            sourcecontrolqueue.Id          = syed_Sourcecontrolqueue.Id;
            sourcecontrolqueue.syed_Status = "Queued";
            service.Update(sourcecontrolqueue);
        }