Exemple #1
0
        public static List <DocumentData> CompareContentControls(string fileName, List <DocumentContentControl> documentContentControls, List <DocumentData> documentDatasFromJson)
        {
            List <DocumentData> newDocumentDatas = new List <DocumentData>();

            //записываю в new Data только те данные, которые соответствуют ContentControls в документе
            foreach (var item in documentContentControls)
            {
                if (item is FieldContentControl)
                {
                    FieldDocumentData fieldDocumentData = null;
                    foreach (var item1 in documentDatasFromJson)
                    {
                        if (item1 is FieldDocumentData)
                        {
                            if ((item1 as FieldDocumentData).Key == item.Field)
                            {
                                fieldDocumentData = (item1 as FieldDocumentData);
                                //documentDatasFromJson.Remove(item1);
                                break;
                            }
                        }
                    }
                    if (fieldDocumentData != null)
                    {
                        newDocumentDatas.Add(fieldDocumentData);
                    }
                }

                if (item is ListContentControl)
                {
                    ListDocumentData listDocumentData = null;
                    foreach (var item1 in documentDatasFromJson)
                    {
                        if (item1 is ListDocumentData)
                        {
                            if ((item1 as ListDocumentData).Key == item.Field)
                            {
                                listDocumentData = (item1 as ListDocumentData);
                                documentDatasFromJson.Remove(item1);
                                break;
                            }
                        }
                    }
                    if (listDocumentData != null)
                    {
                        newDocumentDatas.Add(listDocumentData);
                    }
                }

                if (item is TableContentControl)
                {
                    TableDocumentData tableDocumentData = null;
                    foreach (var item1 in documentDatasFromJson)
                    {
                        if (item1 is TableDocumentData)
                        {
                            if ((item1 as TableDocumentData).Key == item.Field)
                            {
                                tableDocumentData = (item1 as TableDocumentData);
                                documentDatasFromJson.Remove(item1);
                                break;
                            }
                        }
                    }
                    if (tableDocumentData != null)
                    {
                        newDocumentDatas.Add(tableDocumentData);
                    }
                }
            }

            return(newDocumentDatas);
        }
Exemple #2
0
        public static void WriteJson(string fileNameJson, List <DocumentContentControl> documentContentControls)
        {
            #region Data to Json

            List <DocumentData> documentDatasToJson = new List <DocumentData>();
            //записываю ContentControls в Data с пустыми данными для отдачи Data в json
            foreach (var item in documentContentControls)
            {
                if (item is FieldContentControl)
                {
                    documentDatasToJson.Add(new FieldDocumentData(item.Field, ""));
                }

                if (item is ListContentControl)
                {
                    ListDocumentData listDocumentData = new ListDocumentData(item.Field);

                    foreach (var item1 in (item as ListContentControl).Fields)
                    {
                        FieldsDocumentData field = new FieldsDocumentData(item1.Field);
                        field.Values.Add("");
                        listDocumentData.Fields.Add(field);
                    }

                    foreach (var item1 in (item as ListContentControl).Tables)
                    {
                        TableDocumentData tableDocumentData = new TableDocumentData(item1.Field);

                        foreach (var item2 in (item1 as TableContentControl).Fields)
                        {
                            FieldsDocumentData field = new FieldsDocumentData(item2.Field);
                            field.Values.Add("");
                            tableDocumentData.Fields.Add(field);
                        }

                        listDocumentData.Tables.Add(tableDocumentData);
                    }

                    documentDatasToJson.Add(listDocumentData);
                }

                if (item is TableContentControl)
                {
                    TableDocumentData tableDocumentData = new TableDocumentData(item.Field);

                    foreach (var item1 in (item as TableContentControl).Fields)
                    {
                        FieldsDocumentData field = new FieldsDocumentData(item1.Field);
                        field.Values.Add("");
                        tableDocumentData.Fields.Add(field);
                    }

                    documentDatasToJson.Add(tableDocumentData);
                }
            }

            DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(List <DocumentData>));

            //запись в json
            using (FileStream fs = new FileStream(fileNameJson, FileMode.CreateNew))
            {
                jsonFormatter.WriteObject(fs, documentDatasToJson);
            }
            #endregion
        }