public void LoadModel(string projectPath)
        {
            _projectPath = projectPath;
            var project = _projectLoader.Load(projectPath);

            _currentProject = project;
            Model           = new SpaceProjectDetails();
            Model.Schemas   = project.Schemas.Values.Select(x => new SchemaDetails {
                Schema = x, SchemaMigrations = project.SchemaMigrations[x.Name]
            }).ToList();
            Model.Queries = project.Queries.Values.Select(x => new QueryDetails {
                Query = x
            }).ToList();
            Model.Forms = project.Forms.Values.Select(x => new FormDetails {
                Form = x
            }).ToList();

            Model.EditWindows = project.Settings.EditWindows.Select(
                s =>
            {
                var obj = FindModelStoreObject(s);
                return(new EditWindowDetails {
                    StoreObject = obj, StoreObjectDetails = FindModelStoreObjectDetails(obj)
                });
            }).ToList();

            Model.EditWindows.ForEach(w => w.Type = GetStoreObjectType(w.StoreObject));
            UpdateFormBuilder();
        }
Пример #2
0
        private void DataLoad()
        {
            var list = XMProjectService.GetXMProjectList();

            StoreProject.DataSource = list;
            StoreProject.DataBind();
        }
Пример #3
0
        public void SaveAll(StoreProject project, string location, List <ObjectRenameItem> renames)
        {
            SaveFile(location, project.Name, project.Settings, StoreProjectItemType.Project);

            // forms
            foreach (var form in project.Forms.Values)
            {
                SaveFile(location, form.Name, form, StoreProjectItemType.Form);
            }

            ClearRenamed(project, location, renames);
        }
Пример #4
0
        private void ClearRenamed(StoreProject project, string location, List <ObjectRenameItem> renames)
        {
            foreach (var rn in renames)
            {
                var name     = rn.OrignalName + "." + GetProjectItemExtension(rn.Type);
                var fileName = Path.Combine(location, name);

                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
            }
        }
        private StoreProject AssembleStoreProject()
        {
            var result = new StoreProject();

            result.Name             = _currentProject.Name;
            result.Schemas          = new Dictionary <string, StoreSchema>();
            result.SchemaMigrations = new Dictionary <string, StoreSchemaMigrations>();
            result.Queries          = new Dictionary <string, StoreQuery>();
            result.Forms            = new Dictionary <string, StoreForm>();

            // Forms
            foreach (var form in Model.Forms)
            {
                var storeForm = form.Model?.IsDirty == true?form.Model.ToStore() : form.Form;

                result.Forms.Add(storeForm.Name, storeForm);
            }

            return(result);
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name">full path to folder where project file *.project.json located</param>
        /// <returns></returns>
        public StoreProject Load(string folderName)
        {
            var result = new StoreProject();

            result.Schemas          = new Dictionary <string, StoreSchema>();
            result.SchemaMigrations = new Dictionary <string, StoreSchemaMigrations>();
            result.Queries          = new Dictionary <string, StoreQuery>();
            result.Forms            = new Dictionary <string, StoreForm>();

            var dir = folderName;

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            var name = Directory.GetFiles(dir, "*.project.json").FirstOrDefault();

            if (name == null)
            {
                return(result);
            }

            var projectJson = File.ReadAllText(name);

            result.Name     = Path.GetFileName(name).Replace(".project.json", "");
            result.Settings = JsonSerializer.Deserialize <StoreProjectSettings>(projectJson);

            var files = Directory.GetFiles(dir, "*.schema.json");

            foreach (var file in files)
            {
                var json   = File.ReadAllText(file);
                var schema = JsonSerializer.Deserialize <StoreSchema>(json);
                result.Schemas.Add(schema.Name, schema);

                var migrationFile = file.Substring(0, file.Length - ".schema.json".Length) + ".schema.migrations.json";
                json = File.ReadAllText(migrationFile);
                var migration = JsonSerializer.Deserialize <StoreSchemaMigrations>(json);
                result.SchemaMigrations.Add(schema.Name, migration);
            }

            files = Directory.GetFiles(dir, "*.query.json");

            foreach (var file in files)
            {
                var json  = File.ReadAllText(file);
                var query = JsonSerializer.Deserialize <StoreQuery>(json);
                result.Queries.Add(query.Name, query);
            }

            files = Directory.GetFiles(dir, "*.form.json");

            foreach (var file in files)
            {
                var json = File.ReadAllText(file);
                var form = JsonSerializer.Deserialize <StoreForm>(json);
                result.Forms.Add(form.Name, form);
            }

            return(result);
        }
Пример #7
0
            public StoreProject GetModel(int type)
            {
                StoreProject model = new StoreProject();

                switch (type)
                {
                case 1:
                    model.Key         = 1;
                    model.ProjectName = "高级版一个月";
                    model.Integral    = 1000;
                    model.Quantity    = 1;
                    model.BusId       = 5;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 2:
                    model.Key         = 2;
                    model.ProjectName = "高级版三个月";
                    model.Integral    = 2500;
                    model.Quantity    = 3;
                    model.BusId       = 5;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 3:
                    model.Key         = 3;
                    model.ProjectName = "维客套餐";
                    model.Integral    = 4000;
                    model.Quantity    = 1;
                    model.BusId       = 52;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 4:
                    model.Key         = 4;
                    model.ProjectName = "扫描枪";
                    model.Integral    = 8000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 5:
                    model.Key         = 5;
                    model.ProjectName = "暂结账功能一个月";
                    model.Integral    = 1000;
                    model.Quantity    = 1;
                    model.BusId       = 29;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 6:
                    model.Key         = 6;
                    model.ProjectName = "暂结账功能三个月";
                    model.Integral    = 2500;
                    model.Quantity    = 5;
                    model.BusId       = 29;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 7:
                    model.Key         = 7;
                    model.ProjectName = "新能量套餐";
                    model.Integral    = 5000;
                    model.Quantity    = 1;
                    model.BusId       = 34;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 8:
                    model.Key         = 8;
                    model.ProjectName = "58H 热敏打印机";
                    model.Integral    = 6000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 9:
                    model.Key         = 9;
                    model.ProjectName = "分店管理功能一个月";
                    model.Integral    = 1000;
                    model.Quantity    = 1;
                    model.BusId       = 30;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 10:
                    model.Key         = 10;
                    model.ProjectName = "分店管理功能三个月";
                    model.Integral    = 2500;
                    model.Quantity    = 3;
                    model.BusId       = 30;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 11:
                    model.Key         = 11;
                    model.ProjectName = "聚给力套餐";
                    model.Integral    = 12000;
                    model.Quantity    = 1;
                    model.BusId       = 13;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 12:
                    model.Key         = 12;
                    model.ProjectName = "58mm热敏收银纸";
                    model.Integral    = 3000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 13:
                    model.Key         = 13;
                    model.ProjectName = "短信200条";
                    model.Integral    = 1000;
                    model.Quantity    = 2;
                    model.BusId       = 1;
                    model.isEntity    = 0;
                    model.LimitType   = 1;
                    model.LimitNumber = 1;
                    break;

                case 14:
                    model.Key         = 14;
                    model.ProjectName = "短信600条";
                    model.Integral    = 2500;
                    model.Quantity    = 6;
                    model.BusId       = 1;
                    model.isEntity    = 0;
                    model.LimitType   = 1;
                    model.LimitNumber = 1;
                    break;

                case 15:
                    model.Key         = 15;
                    model.ProjectName = "生意专家T恤";
                    model.Integral    = 1000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 16:
                    model.Key         = 16;
                    model.ProjectName = "热敏条码打印机";
                    model.Integral    = 20000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 17:
                    model.Key         = 17;
                    model.ProjectName = "手机橱窗一个月";
                    model.Integral    = 500;
                    model.Quantity    = 1;
                    model.BusId       = 6;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 18:
                    model.Key         = 18;
                    model.ProjectName = "手机橱窗三个月";
                    model.Integral    = 1200;
                    model.Quantity    = 3;
                    model.BusId       = 6;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 19:
                    model.Key         = 19;
                    model.ProjectName = "USB 3.0 8G U盘";
                    model.Integral    = 1500;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 20:
                    model.Key         = 20;
                    model.ProjectName = "保险箱";
                    model.Integral    = 15000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 21:
                    model.Key         = 21;
                    model.ProjectName = "优惠券一个月";
                    model.Integral    = 300;
                    model.Quantity    = 1;
                    model.BusId       = 7;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 22:
                    model.Key         = 22;
                    model.ProjectName = "优惠券三个月";
                    model.Integral    = 800;
                    model.Quantity    = 3;
                    model.BusId       = 7;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 23:
                    model.Key         = 23;
                    model.ProjectName = "点钞机";
                    model.Integral    = 20000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 24:
                    model.Key         = 24;
                    model.ProjectName = "拉卡拉POS";
                    model.Integral    = 25000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 25:
                    model.Key         = 25;
                    model.ProjectName = "维客短信_生日提醒";
                    model.Integral    = 300;
                    model.Quantity    = 1;
                    model.BusId       = 46;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 26:
                    model.Key         = 26;
                    model.ProjectName = "维客短信_生日提醒";
                    model.Integral    = 800;
                    model.Quantity    = 3;
                    model.BusId       = 46;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 27:
                    model.Key         = 27;
                    model.ProjectName = "维客短信_新增会员";
                    model.Integral    = 300;
                    model.Quantity    = 1;
                    model.BusId       = 51;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 28:
                    model.Key         = 28;
                    model.ProjectName = "维客短信_新增会员";
                    model.Integral    = 800;
                    model.Quantity    = 3;
                    model.BusId       = 51;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 29:
                    model.Key         = 29;
                    model.ProjectName = "维客短信_储值提醒";
                    model.Integral    = 300;
                    model.Quantity    = 1;
                    model.BusId       = 48;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 30:
                    model.Key         = 30;
                    model.ProjectName = "维客短信_储值提醒";
                    model.Integral    = 800;
                    model.Quantity    = 3;
                    model.BusId       = 48;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 31:
                    model.Key         = 31;
                    model.ProjectName = "维客短信_消费提醒";
                    model.Integral    = 300;
                    model.Quantity    = 1;
                    model.BusId       = 50;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 32:
                    model.Key         = 32;
                    model.ProjectName = "维客短信_消费提醒";
                    model.Integral    = 800;
                    model.Quantity    = 3;
                    model.BusId       = 50;
                    model.isEntity    = 0;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 33:
                    model.Key         = 33;
                    model.ProjectName = "计算器";
                    model.Integral    = 2000;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 34:
                    model.Key         = 34;
                    model.ProjectName = "小米插线板";
                    model.Integral    = 3500;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                case 35:
                    model.Key         = 35;
                    model.ProjectName = "小米移动电源";
                    model.Integral    = 3500;
                    model.Quantity    = 1;
                    model.BusId       = 0;
                    model.isEntity    = 1;
                    model.LimitType   = 0;
                    model.LimitNumber = 0;
                    break;

                default:
                    return(null);
                }
                return(model);
            }