Beispiel #1
0
        public async void EditSave()
        {
            MainViewModel main = IoC.Get <MainViewModel>();

            if (!await ValidateAsync())
            {
                await main.Notify("项目信息验证失败", NotificationType.Warning);

                return;
            }

            CodeProjectInputDto dto    = this.MapTo <CodeProjectInputDto>();
            OperationResult     result = null;
            await _serviceProvider.ExecuteScopedWorkAsync(async provider =>
            {
                IDataContract contract = provider.GetRequiredService <IDataContract>();
                result = dto.Id == default
                    ? await contract.CreateCodeProjects(dto)
                    : await contract.UpdateCodeProjects(dto);
            });

            Helper.Notify(result);
            if (!result.Succeeded)
            {
                return;
            }

            ProjectListViewModel list = main.ProjectList;

            list.EditingModel = null;
            list.IsShowEdit   = false;
            list.Init();
        }
Beispiel #2
0
        /// <summary>将种子数据初始化到数据库</summary>
        protected override void SyncToDatabase(CodeProject[] entities, IServiceProvider provider)
        {
            if (entities == null || entities.Length == 0)
            {
                return;
            }
            IDataContract contract = provider.GetRequiredService <IDataContract>();
            var           dtos     = entities.Select(m => new CodeProjectInputDto()
            {
                Id       = m.Id,
                Name     = m.Name, NamespacePrefix = m.NamespacePrefix, Company = m.Company, Creator = m.Creator, Copyright = m.Copyright,
                RootPath = m.RootPath, SiteUrl = m.SiteUrl
            }).ToArray();

            contract.CreateCodeProjects(dtos).GetAwaiter().GetResult();
        }
Beispiel #3
0
        private static async Task <CodeProject> GetOrAddProject(IDataContract contract, CodeProject proj)
        {
            CodeProject project = contract.CodeProjects.FirstOrDefault(m => m.Name == proj.Name && m.NamespacePrefix == proj.NamespacePrefix);

            if (project != null)
            {
                return(project);
            }

            CodeProjectInputDto projDto = new CodeProjectInputDto()
            {
                Name            = proj.Name,
                NamespacePrefix = proj.NamespacePrefix,
                Company         = proj.Company,
                SiteUrl         = proj.SiteUrl,
                Creator         = proj.Creator,
                Copyright       = proj.Copyright
            };
            await contract.CreateCodeProjects(projDto);

            project = contract.CodeProjects.First(m => m.Name == proj.Name && m.NamespacePrefix == proj.NamespacePrefix);

            return(project);
        }