示例#1
0
 /// <summary>
 /// Reverts the changes for sample data based on the information provided
 /// </summary>
 /// <param name="matterDetailsCollection">Matter details collection</param>
 /// <param name="clientCollection">Client details collection</param>
 /// <param name="configVal">Configuration values from Excel</param>
 internal static void RevertData(List <DataStorage> matterDetailsCollection, ClientTermSets clientCollection, Dictionary <string, string> configVal)
 {
     try
     {
         if (null != matterDetailsCollection && null != clientCollection && null != configVal && 0 < matterDetailsCollection.Count)
         {
             foreach (DataStorage matterDetails in matterDetailsCollection)
             {
                 Client clientObject = clientCollection.ClientTerms.Where(item => item.ClientName.Equals(matterDetails.ClientName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                 if (null != clientObject)
                 {
                     using (ClientContext clientContext = MatterProvisionHelperUtility.GetClientContext(clientObject.ClientUrl, configVal))
                     {
                         PropertyValues properties = clientContext.Web.Lists.GetByTitle(matterDetails.MatterPrefix).RootFolder.Properties;
                         clientContext.Load(properties);
                         clientContext.ExecuteQuery();
                         Matter matter = new Matter(matterDetails);
                         matter.MatterGuid = properties.FieldValues.ContainsKey("MatterGUID") ? System.Web.HttpUtility.HtmlDecode(Convert.ToString(properties.FieldValues["MatterGUID"], CultureInfo.InvariantCulture)) : matterDetails.MatterPrefix;
                         MatterProvisionHelper.DeleteMatter(clientContext, matter);
                     }
                 }
                 else
                 {
                     Console.WriteLine("Failed to get Client Url for client: {0}", matterDetails.ClientName);
                     Console.WriteLine("-------------------------------------------------------------------------------");
                     continue;
                 }
             }
         }
     }
     catch (Exception exception)
     {
         Utility.DisplayAndLogError(errorFilePath, "Message: " + exception.Message + "\nStacktrace: " + exception.StackTrace);
     }
 }
示例#2
0
        /// <summary>
        /// Add Calendar Web Part to client site
        /// </summary>
        /// <param name="clientContext">SharePoint Client Context</param>
        /// <param name="matter">Matter object containing Matter data</param>
        internal static void AddCalendarList(ClientContext clientContext, Matter matter)
        {
            string calendarName = string.Concat(matter.MatterName, ConfigurationManager.AppSettings["CalendarNameSuffix"]);

            try
            {
                Web web = clientContext.Web;
                clientContext.Load(web, item => item.ListTemplates);
                clientContext.ExecuteQuery();
                ListTemplate listTemplate = null;
                foreach (var calendar in web.ListTemplates)
                {
                    if (calendar.Name == Constants.CalendarName)
                    {
                        listTemplate = calendar;
                    }
                }

                ListCreationInformation listCreationInformation = new ListCreationInformation();
                listCreationInformation.TemplateType = listTemplate.ListTemplateTypeKind;
                listCreationInformation.Title        = calendarName;
                // Added URL property for URL consolidation changes
                listCreationInformation.Url = Constants.TitleListPath + matter.MatterGuid + ConfigurationManager.AppSettings["CalendarNameSuffix"];
                web.Lists.Add(listCreationInformation);
                web.Update();
                clientContext.ExecuteQuery();
                MatterProvisionHelperUtility.BreakPermission(clientContext, matter.MatterName, matter.CopyPermissionsFromParent, calendarName);
            }
            catch (Exception exception)
            {
                //// Generic Exception
                MatterProvisionHelper.DeleteMatter(clientContext, matter);
                DisplayAndLogError(errorFilePath, "Message: " + exception.Message + "\nStacktrace: " + exception.StackTrace);
            }
        }
示例#3
0
        /// <summary>
        /// Method to check matter creation status
        /// </summary>
        /// <param name="configVal">dictionary object</param>
        /// <param name="successMatterNameCount">success matter name</param>
        /// <param name="alreadyExistsMatterCount">count of existing matter</param>
        /// <param name="validateMatterId">validate matter id</param>
        /// <param name="validateMatterTitle">validate title</param>
        /// <param name="validateMatterDesc"> validate description</param>
        /// <param name="matterMetadata">matter metadata</param>
        /// <param name="clientName">client name</param>
        /// <param name="client">client object</param>
        /// <param name="folders">folder name</param>
        /// <param name="contentTypes">array of content type</param>
        /// <param name="matterObj">matter object</param>
        /// <param name="clientContext">client context</param>
        private static void CheckMatterCreationStatus(Dictionary <string, string> configVal, ref int successMatterNameCount, ref int alreadyExistsMatterCount, Regex validateMatterId, Regex validateMatterTitle, Regex validateMatterDesc, MatterMetadata matterMetadata, string clientName, Client client, string folders, string[] contentTypes, Matter matterObj, ClientContext clientContext)
        {
            string matterCreatedSuccessfully;

            if (Convert.ToInt32(ConfigurationManager.AppSettings["MatterIdMaxLength"], CultureInfo.InvariantCulture) < matterObj.MatterId.Length || (!validateMatterId.IsMatch(matterObj.MatterId)))
            {
                matterCreatedSuccessfully = Constants.InvalidMatterID;
            }
            else if (Convert.ToInt32(ConfigurationManager.AppSettings["MatterTitleMaxLength"], CultureInfo.InvariantCulture) < matterObj.MatterName.Length || (!validateMatterTitle.IsMatch(matterObj.MatterName)))
            {
                matterCreatedSuccessfully = Constants.InvalidMatterTitle;
            }
            else if (!validateMatterDesc.IsMatch(matterObj.MatterDescription))
            {
                matterCreatedSuccessfully = Constants.InvalidMatterDescription;
            }
            else if (Constants.InvalidConflictDate.Equals(matterObj.Conflict.ConflictCheckOn))
            {
                matterCreatedSuccessfully = Constants.InvalidConflictDate;
            }
            else
            {
                // Call to create matter
                matterCreatedSuccessfully = MatterProvisionHelper.CreateMatter(clientContext, client.ClientUrl, matterObj, folders);
            }
            if (Constants.MatterProvisionPrerequisitesSuccess == matterCreatedSuccessfully)
            {
                try
                {
                    successMatterNameCount = OnMatterCreationSuccess(configVal, successMatterNameCount, matterMetadata, clientName, client, contentTypes, matterObj, clientContext);
                }
                catch (Exception exception)
                {
                    Utility.DisplayAndLogError(errorFilePath, "Message: " + exception.Message + "\nStacktrace: " + exception.StackTrace);
                    MatterProvisionHelper.DeleteMatter(clientContext, matterObj);
                }
            }
            else
            {
                switch (matterCreatedSuccessfully)
                {
                case "1":
                    // matter is already present
                    Console.WriteLine("Matter: {0} is already present", matterObj.MatterName);
                    alreadyExistsMatterCount++;
                    break;

                case "2":
                    // OneNote library is already present
                    Console.WriteLine("OneNote Library: {0} is already present", matterObj.MatterName + ConfigurationManager.AppSettings["OneNoteLibrarySuffix"]);
                    alreadyExistsMatterCount++;
                    break;

                case "3":
                    // matter landing page is already present
                    Console.WriteLine("Matter Landing Page: {0} is already present", matterObj.MatterName);
                    alreadyExistsMatterCount++;
                    break;

                case "4":
                    // Validation fail for matter ID
                    Console.WriteLine("Matter Id validation fail for Matter {0}", matterObj.MatterName);
                    break;

                case "5":
                    // Validation fail for matter Name
                    Console.WriteLine("Matter Name validation fail for Matter {0}", matterObj.MatterName);
                    break;

                case "6":
                    // Validation fail for matter description
                    Console.WriteLine("Matter Description validation fail for Matter {0}", matterObj.MatterName);
                    break;

                case "7":
                    // Validation fail for conflict date
                    Console.WriteLine("Conflict date validation fail for Matter {0}", matterObj.MatterName);
                    break;
                }
                Console.WriteLine("-------------------------------------------------------------------------------");
            }
        }