/// <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; } } }
/// <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); }
/// <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); }