Exemplo n.º 1
0
        /// <summary>
        /// Method creates Dynamics source Control record
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="solutionId">Solution Id</param>
        /// <param name="mode">Check In or Release mode</param>
        /// <returns>returns GUID of newly created Dynamics source Control record</returns>
        public static Guid CreateDynamicsSourceControl(IOrganizationService service, string solutionId, string mode)
        {
            syed_sourcecontrolqueue sourcecontrolqueue = new syed_sourcecontrolqueue();

            sourcecontrolqueue.syed_Status              = "Draft";
            sourcecontrolqueue.syed_CheckInBySolution   = true;
            sourcecontrolqueue.syed_CheckInBySolutionId = solutionId;
            sourcecontrolqueue.syed_name    = "SOL-" + DateTime.UtcNow.ToString("dd/MM/yyyy hh:mm:ss");
            sourcecontrolqueue.syed_Comment = mode + DateTime.UtcNow.ToString("dd/MM/yyyy hh:mm:ss");
            sourcecontrolqueue.syed_overwritesolutionstxt = new OptionSetValue(433710000);
            sourcecontrolqueue.syed_SourceControl         = new OptionSetValue(433710002);

            sourcecontrolqueue.syed_CheckIn = true;
            if (mode == "Release")
            {
                sourcecontrolqueue.syed_IncludeInRelease = true;
            }
            else
            {
                sourcecontrolqueue.syed_IncludeInRelease = false;
            }

            Guid id = service.Create(sourcecontrolqueue);

            return(id);
        }
        /// <summary>
        /// To create Dynamics source control and create associated solution details.
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="solutionId">CRM Solution id</param>
        /// <param name="checkIn">check In</param>
        /// <param name="tracingService">Tracing Service to trace error</param>
        public static void CreateDynmicsSourceControl(IOrganizationService service, string solutionId, string checkIn, ITracingService tracingService)
        {
            Guid id = ExecuteOperations.CreateDynamicsSourceControl(service, solutionId, checkIn);
            syed_sourcecontrolqueue syed_Sourcecontrolqueue = service.Retrieve(syed_sourcecontrolqueue.EntityLogicalName.ToString(), id, new ColumnSet(true)).ToEntity <syed_sourcecontrolqueue>();

            CreateSolutionDetail(service, syed_Sourcecontrolqueue, tracingService);
        }
        /// <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;
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// To update comma separated solution list in Dynamic Source Control entity.
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="sourceControlId">Dynamic Source Control entity GUID</param>
        /// <param name="tracingService">Tracing Service to trace error</param>
        private static void UpdateListToSourceControl(IOrganizationService service, Guid sourceControlId, ITracingService tracingService)
        {
            EntityCollection associatedRecordList = null;
            string           listOfSolution       = string.Empty;
            string           solutionName         = string.Empty;

            associatedRecordList = SolutionHelper.RetrieveSolutionDetailsToBeMergedByListOfSolutionId(service, sourceControlId, tracingService);
            listOfSolution       = ExecuteOperations.GetCommaSeparatedListofSolution(service, associatedRecordList, tracingService);
            associatedRecordList = SolutionHelper.RetrieveMasterSolutionDetailsByListOfSolutionId(service, sourceControlId, tracingService);
            solutionName         = ExecuteOperations.GetCommaSeparatedListofMaster(service, associatedRecordList, tracingService);
            syed_sourcecontrolqueue sourceControlQueue = new syed_sourcecontrolqueue();

            sourceControlQueue.syed_sourcecontrolqueueId = sourceControlId;
            sourceControlQueue.syed_SourcenSolutions     = listOfSolution;
            sourceControlQueue.syed_SolutionName         = solutionName;
            service.Update(sourceControlQueue);
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Method creates Master Solution Record
        /// </summary>
        /// <param name="service">Organization service</param>
        /// <param name="syed_Solutiondetail">Master Solution</param>
        /// <param name="syed_Sourcecontrolqueue">Dynamics Source control</param>
        public static void CreateSolutionDetail(IOrganizationService service, syed_solutiondetail syed_Solutiondetail, syed_sourcecontrolqueue syed_Sourcecontrolqueue)
        {
            syed_solutiondetail solutiondetail = new syed_solutiondetail();

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