Exemplo n.º 1
0
        private User GetUserFromInput(AddUserCommand input)
        {
            var user = new User()
            {
                Tenants = new List <UserTenant>
                {
                    new UserTenant()
                    {
                        TenantId       = input.TenantId,
                        FederationCode = codeGenerator.Generate(10)
                    }
                },
                Profile = new UserProfile()
                {
                    FirstName = input.FirstName,
                    LastName  = input.LastName,
                    Address   = new Address()
                    {
                        City    = input.City,
                        State   = input.State,
                        Zip     = input.Zip,
                        Street  = input.Street,
                        Country = input.Country
                    }
                }
            };

            return(user);
        }
Exemplo n.º 2
0
 public void TestClassesTestGenerator()
 {
     try
     {
         baseGenerator.Init(Globals.SmsTestProject, null, new BuildAggregator());
     }
     catch (Exception ex)
     {
         Log.Error(ex);
     }
     baseGenerator.Generate();
 }
Exemplo n.º 3
0
        public int OnExecute()
        {
            if (Profile == null)
            {
                Console.Error.WriteLine("You must specify a profile name for which to generate code");
                return(-1);
            }

            var profile = GetProfiles().SingleOrDefault(x => x.Name == Profile);

            if (profile == null)
            {
                Console.Error.WriteLine($"Could not resolve profile] for name [{Profile}]");
                return(-1);
            }

            var options = _serializer.Load(profile);

            Console.WriteLine("Got Options: " + options);

            var tc = ResolveTemplates(options);

            var model = _cacheBuilder.LoadFromCache(options);

            _codeGenerator.Generate(options, model, tc, File.WriteAllText);
            return(0);
        }
Exemplo n.º 4
0
        private void GenerateCodeFor(IManageEntityMetadata entityMetadataMgr)
        {
            var aggregateRoot = entityMetadataMgr.EntityName;
            // Generate namespace section
            var namespaceDeclaration = new NamespaceDeclaration(aggregateRoot);

            // Generate class declration
            var factoryClass = new ClassDeclaration
                {
                    ClassName = aggregateRoot + "Factory",
                    Base = string.Format("IResourceFactory<{0}>", aggregateRoot)
                };

            namespaceDeclaration.Classes.Add(factoryClass);

            var context = new CodeGenContext(namespaceDeclaration, factoryClass);

            var buildMethodName = "Build" + aggregateRoot;

            context.ClassDeclaration
                .OpenMethod(new MethodDeclaration("public", aggregateRoot, "Build", "XElement element, INodeSearch nodeSearch"))
                .WriteLine("return ({0})", aggregateRoot)
                .Write("{0}(element, nodeSearch);", buildMethodName)
                .EndMethod();

            GenerateHelperBuildMethodFor(entityMetadataMgr, context);

            // write the generated code to file
            codeGenerator.Generate(namespaceDeclaration);
        }
Exemplo n.º 5
0
        public bool EmitCode()
        {
            if (combinedCodeGenManifest == null)
            {
                diags.ReportError("Compilation has no manifests for code generation.");
                return(false);
            }

            var trap = diags.TrapError();

            ICodeGenerator codeGen = opts.CodeGenOptions.CodeGeneratorFactory?.Invoke();

            if (codeGen == null)
            {
                diags.ReportError("Failed to create the code generator instance.");
                return(false);
            }

            using var output = FileUtilities.TryCreateFile(diags, opts.CodeGenOptions.CodeHeaderFile);
            if (output == null)
            {
                return(false);
            }
            codeGen.Generate(combinedCodeGenManifest, output);

            return(!trap.ErrorOccurred);
        }
Exemplo n.º 6
0
 public Game(ICodeGenerator generator, GameStatus gameStatus, GameInputValidator validator)
 {
     _codeGenerator = generator;
     code           = _codeGenerator.Generate();
     _gameStatus    = gameStatus;
     _validator     = validator;
 }
Exemplo n.º 7
0
        private void generate()
        {
            ICodeGenerator selectedCodeGenerator = (ICodeGenerator)this.cmbGenerator.SelectedItem;

            this.txtGeneratedCode.Text = selectedCodeGenerator.Generate(this.txtClassName.Text, this.schemaTable);
            //MessageBox.Show(selectedSchemaService.SchemaServiceName);
        }
Exemplo n.º 8
0
        private static int GenerateCode(Options result)
        {
            XDocument xdoc = XDocument.Parse("<def></def>");

            System.IO.DirectoryInfo directory = new DirectoryInfo(result.ModelDirectory);
            if (directory.Exists)
            {
                directory.GetFiles().Where((file) => file.Extension == ".xml").Aggregate(xdoc, (doc, file) => {
                    doc.Root.Add(XDocument.Load(file.FullName).Root.Elements());
                    return(doc);
                });
            }
            else
            {
                return(1);
            }

            var model = BuildModel(xdoc);

            var dllPath = Path.IsPathRooted(result.Generator) ? result.Generator : Path.Combine(Directory.GetCurrentDirectory(), result.Generator);

            var asm  = AssemblyLoadContext.Default.LoadFromAssemblyPath(dllPath);
            var type = asm.ExportedTypes.First(t => t.GetInterfaces().Contains(typeof(ICodeGenerator)));

            ICodeGenerator generator = Activator.CreateInstance(type) as ICodeGenerator;

            if (generator != null)
            {
                return(generator.Generate(model, result.OutputDirectory, result.TemplateDirectory));
            }

            return(1);
        }
Exemplo n.º 9
0
        /// <summary>
        ///     Decompiles the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="method">The method.</param>
        /// <returns></returns>
        public IPapyrusDecompilerResult Decompile(IDecompilerContext context, PapyrusMethodDefinition method)
        {
            context.SetTargetMethod(method);


            flowAnalyzer.FindVarTypes();

            flowAnalyzer.CreateFlowBlocks();

            flowAnalyzer.MapLongLivedTempVariables();

            flowAnalyzer.AssignLongLivedTempVariables();

            flowAnalyzer.RebuildExpressionsInBlocks();

            flowAnalyzer.RebuildBooleanOperators(0, method.Body.Instructions.Count);

            var tree = flowAnalyzer.RebuildControlFlow(0, method.Body.Instructions.Count);

            tree = flowAnalyzer.Finalize(tree);

            var result = codeGenerator.Generate(tree);

            var sourceCode = codeGenerator.GetMethodSourceCode(result, method);


            return(new PapyrusDecompilerResult(sourceCode, null));
        }
Exemplo n.º 10
0
        public async Task <CommandResult> Handle(ForgotPasswordCommand email)
        {
            var user = userRepo.Get(email.Email);

            if (user == null)
            {
                return(CommandResult.Fail());
            }
            user.ValidationCodes = user.ValidationCodes.Where(v => v.Type != ValidationCodeType.PasswordReset).ToList();

            var code = new ValidationCode()
            {
                Code        = codeGenerator.Generate(30),
                CreatedDate = DateTime.Now,
                Type        = ValidationCodeType.PasswordReset,
            };

            user.ValidationCodes.Add(code);
            userRepo.Update(user);

            var em = new PasswordResetEmail()
            {
                To  = user.Credentials.Email,
                Url = string.Format(appSettings.PasswordResetUrl, user.Id.ToString(), code.Code)
            };
            await emailSender.Send(em);

            return(CommandResult.Success());
        }
Exemplo n.º 11
0
        public string Compile(string code)
        {
            var allCode = GetStdCode() + code;

            var tokens = _lexicalAnalyser.Convert(allCode);
            var tree   = _syntaxAnalyser.Convert(tokens);

            _semanticAnalyser.Analyse(tree);
            return(_codeGenerator.Generate(tree));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Generates source code from <paramref name="databaseModel"/> to the specified <paramref name="toFolder"/>, <seealso cref="DatabaseModel"/>
        /// </summary>
        /// <param name="codeGenerator">The <see cref="ICodeGenerator"/>.</param>
        /// <param name="databaseModel">The database model.</param>
        /// <param name="toFolder">The folder to save the source code.</param>
        /// <param name="namespace">The namespace for the generated class, if null, will use the namespace of the this tools.</param>
        public static void EmitSourceCode(this ICodeGenerator codeGenerator, DatabaseModel databaseModel, string toFolder, string @namespace = null)
        {
            foreach (var item in codeGenerator.Generate(databaseModel, @namespace))
            {
                var fileName = $@"{toFolder}\{item.name}.cs";

                // write to disk.
                File.WriteAllText(fileName, item.syntaxNode.ToFullString());
            }
        }
Exemplo n.º 13
0
        private void GeneratCode(object obj)
        {
            var kv     = (KeyValuePair <string, object>)obj;
            var key    = kv.Key;
            var value  = (SchemaObject)kv.Value;
            var result = codeGenerator.Generate(new CodeGenerationKey {
                Name = key
            }, value);

            GeneratedText = result;
        }
        protected override int OnExecute(CommandLineApplication application)
        {
            var workingDirectory = WorkingDirectory ?? Environment.CurrentDirectory;
            var optionsFile      = OptionsFile ?? GeneratorOptionsSerializer.OptionsFileName;

            var options = Serializer.Load(workingDirectory, optionsFile);

            if (options == null)
            {
                Logger.LogInformation("Using default options");
                options = new GeneratorOptions();
            }

            // override options
            if (ConnectionString.HasValue())
            {
                options.Database.ConnectionString = ConnectionString;
            }

            if (Provider.HasValue)
            {
                options.Database.Provider = Provider.Value;
            }

            if (Extensions.HasValue)
            {
                options.Data.Query.Generate = Extensions.Value;
            }


            if (Models.HasValue)
            {
                options.Model.Read.Generate   = Models.Value;
                options.Model.Create.Generate = Models.Value;
                options.Model.Update.Generate = Models.Value;
            }

            if (Mapper.HasValue)
            {
                options.Model.Mapper.Generate = Mapper.Value;
            }

            if (Validator.HasValue)
            {
                options.Model.Validator.Generate = Validator.Value;
            }

            var result = _codeGenerator.Generate(options);

            return(result ? 0 : 1);
        }
Exemplo n.º 15
0
        private CSharpDocument WriteDocument(
            ICodeGenerator generator,
            ICodeDescriptor descriptor,
            StringBuilder code)
        {
            code.Clear();

            using var writer = new CodeWriter(code);

            generator.Generate(writer, descriptor, out string fileName);

            writer.Flush();
            return(new(fileName, code.ToString()));
        }
        public void AddScoped_foreach_CodeIsCorrect()
        {
            _methodGenerator
            .AddScoped("foreach(var e in list)", method => method
                       .AddLine("Console.WriteLine(e);"));

            var code = _codeGenerator.Generate();

            code.RemoveSpecialCharacters().Should().Be(
                "foreach(var e in list)" +
                "{" +
                "Console.WriteLine(e);" +
                "}");
        }
Exemplo n.º 17
0
        private async Task <CreateRoundResult> CreateRound(int gameId, int ownerId, int questionCardId, int roundNumber)
        {
            var code      = codeGenerator.Generate();
            var gameRound = await gameRoundsRepository.CreateGameRound(new CreateGameRoundModel
            {
                GameId         = gameId,
                RoundCode      = code,
                OwnerPlayerId  = ownerId,
                QuestionCardId = questionCardId,
                RoundNumber    = roundNumber
            });

            return(new CreateRoundResult(gameRound.GameRoundId, gameRound.Code, ownerId));
        }
Exemplo n.º 18
0
        public async Task <string> Save(string LongUrl)
        {
            //LongUrl = LongUrl.ToUpper();
            if (!Regex.IsMatch(LongUrl, URLHelpers.HttpRegexTemplate))
            {
                throw new ArgumentException("Invalid parameter", "LongUrl");
            }

            //get string sha256 hash
            var hash = GetCryptoHashCode(LongUrl.ToUpper()).ToHexString();

            //check if it exists
            //if exists, return existing short link
            var link = (await linkMgr.GetFiltered(new LinkSpecification(l => l.LinkHash == hash))).FirstOrDefault();

            if (link != null)
            {
                return(GetFullShortLink(link.ShortLink));
            }
            else
            {
                int retryCount = 0;
                do
                {
                    //generate shortCode
                    var shortPart = codeGen.Generate();
                    link = (await linkMgr.GetFiltered(new LinkSpecification(l => l.ShortLink == shortPart))).FirstOrDefault();
                    if (link == null)
                    {
                        link = new Link()
                        {
                            LongLink  = LongUrl,
                            LinkHash  = hash,
                            ShortLink = shortPart,
                            CreatedAt = DateTime.Now
                        };
                        try
                        {
                            await linkMgr.Create(link);

                            return(GetFullShortLink(link.ShortLink));
                        }
                        catch (DbUpdateException) { }
                    }
                } while (++retryCount < options.RetryLimit);
                throw new OperationAbortedException("Operation cann't be completed. Try again later");
            }
        }
Exemplo n.º 19
0
        public void OnExecute()
        {
            using var server = OutProcGenProtocol.CreateServer(PipeName);
            server.WaitForConnection();
            server.BeginSession();

            //           server.StartProfile("all_profiles");

            //           var buff = new StringBuilder();
            //           buff.AppendLine(@"
            //namespace Conjure.Gen
            //{
            //    public partial class Profiles
            //    {
            //");
            //           foreach (var profile in GetProfiles())
            //           {
            //               buff.AppendLine($"        // {profile.Name}");
            //               buff.AppendLine($"        public const string ProfilePath_{profile.Name} = \"{profile.ProfilePath.Replace("\\", "\\\\")}\";");
            //               buff.AppendLine($"        public const string OptionsPath_{profile.Name} = \"{profile.OptionsPath.Replace("\\", "\\\\")}\";");
            //           }
            //           buff.AppendLine(@"
            //    }
            //}
            //");
            //           server.AddFile("AllProfiles.cs", buff.ToString());

            try
            {
                foreach (var profile in GetProfiles())
                {
                    var options = _serializer.Load(profile);
                    var model   = _cacheBuilder.LoadFromCache(options);

                    var tc = GenerateCommand.ResolveTemplates(options);

                    server.StartProfile(profile.Name);
                    _codeGenerator.Generate(options, model, tc, server.AddFile);
                }
            }
            catch (Exception ex)
            {
                server.Fail("???", ex.Message, ex.StackTrace);
            }

            server.EndSession();
        }
Exemplo n.º 20
0
        public async Task <CreateGameResult> Handle(CreateGame request, CancellationToken cancellationToken)
        {
            using (var transaction = repositoryTransactionsFactory.CreateTransaction())
            {
                var validationResult = await requestValidator.Validate(request);

                if (!validationResult.IsSuccessful)
                {
                    return(new CreateGameResult(validationResult.Error));
                }

                var gameCode = codeGenerator.Generate();

                var game = await CreateGame(request, gameCode);

                var player = await CreatePlayer(game.GameId, request.UserId);

                var createRoundResult = await gameRoundCreator
                                        .CreateFirstRound(game.GameId, player.PlayerId);

                if (!createRoundResult.IsSuccessful)
                {
                    return(new CreateGameResult(createRoundResult.Error));
                }

                var createCardsResult = await playerCardsCreator.CreateCardsForPlayer(game.GameId, player.PlayerId);

                if (!createCardsResult.IsSuccessful)
                {
                    return(new CreateGameResult(createCardsResult.Error));
                }

                var checkpoint = await gameCheckpointUpdater.Update(game.GameId, nameof(CreateGame));

                transaction.CommitTransaction();

                return(new CreateGameResult
                {
                    GameId = game.GameId,
                    PlayerId = player.PlayerId,
                    Code = gameCode,
                    Checkpoint = checkpoint
                });
            }
        }
Exemplo n.º 21
0
        public async Task <string> Update(int gameId, string operationType)
        {
            var checkpointCode = codeGenerator.Generate();

            var result = await checkpointRepository.CreateGameCheckpoint(new CreateGameCheckpointModel
            {
                Code          = checkpointCode,
                GameId        = gameId,
                OperationType = operationType
            });

            if (result == 0)
            {
                throw new InvalidOperationException(GameErrors.CheckpointUpdateFailed);
            }

            return(checkpointCode);
        }
Exemplo n.º 22
0
        private static CSharpDocument WriteDocument(
            ICodeGenerator generator,
            ICodeDescriptor descriptor,
            StringBuilder code)
        {
            code.Clear();

            using var writer = new CodeWriter(code);

#if DEBUG
            writer.WriteLine("// " + generator.GetType().FullName);
            writer.WriteLine();
#endif

            generator.Generate(writer, descriptor, out string fileName);

            writer.Flush();
            return(new(fileName, code.ToString()));
        }
        private async Task <CreateUserResult> CreateNewGoogleUser(AuthenticateGoogleUser request)
        {
            var userCode = codeGenerator.Generate();
            var result   = await usersRepository.CreateGoogleUser(new CreateGoogleUserModel
            {
                Code        = userCode,
                Email       = request.Email,
                DisplayName = request.DisplayName,
                GoogleId    = request.GoogleId,
                ImageUrl    = request.ImageUrl
            });

            if (!result.IsSuccessful)
            {
                return(new CreateUserResult(result.Error));
            }

            return(CreateResult(result.Model));
        }
        private static void GenerateAll()
        {
            Type typeDefinition = typeof(ICodeGenerator);

            Assembly    assembly = Assembly.GetExecutingAssembly();
            List <Type> types    = assembly.GetTypes()
                                   .Where(x => x.GetInterfaces().Contains(typeDefinition))
                                   .ToList();

            for (int i = 0; i < types.Count; i++)
            {
                Type type = types[i];
                if (type.IsAbstract)
                {
                    continue;
                }

                ICodeGenerator instance = (ICodeGenerator)Activator.CreateInstance(type);
                instance.Generate();
            }
        }
Exemplo n.º 25
0
        private void ParseButtonClick(object sender, EventArgs e)
        {
            var url    = new Uri(UrlTextBox.Text);
            var method = pageParser.Parse(url);

            var methodAsString = new StringBuilder();

            methodAsString.AppendLine($"Block: {method.Block}");
            methodAsString.AppendLine($"Name: {method.Name}");
            methodAsString.AppendLine($"Description: {method.Description}");

            methodAsString.AppendLine(string.Empty);

            methodAsString.AppendLine($"Request parameters");
            foreach (var parameter in method.RequestParameters)
            {
                methodAsString.AppendLine($"    Name: {parameter.Name}");
                methodAsString.AppendLine($"    Type: {parameter.Type}");
                methodAsString.AppendLine($"    Required: {parameter.IsRequired}");
                methodAsString.AppendLine($"    Description: {parameter.Description}");
                methodAsString.AppendLine(string.Empty);
            }

            methodAsString.AppendLine($"Response info");
            foreach (var parameter in method.ResponseParameters)
            {
                methodAsString.AppendLine($"    Name: {string.Join(".", parameter.Name)}");
                methodAsString.AppendLine($"    Type: {parameter.Type}");
                methodAsString.AppendLine($"    Description: {parameter.Description}");
                methodAsString.AppendLine(string.Empty);
            }

            ParsedMethodRichTextBox.Text = methodAsString.ToString();

            var generationResult = codeGenerator.Generate(method);

            GeneratedRequestCodeRichTextBox.Text  = generationResult.RequestClass;
            GeneratedResponseCodeRichTextBox.Text = generationResult.ResponseClass;
        }
Exemplo n.º 26
0
        /// <summary>
        /// Process an individual request.
        /// </summary>
        /// <param name="environment"></param>
        /// <returns></returns>
        public Task Invoke(HttpContext context)
        {
            var request = context.Request;

            var path = new PathString(Path);

            if (request.Path == path)
            {
                var    codeName   = StringValues.IsNullOrEmpty(request.Query["name"]) ? "default" : request.Query["name"].ToString();
                var    length     = request.Query["length"];
                var    codeLength = StringValues.IsNullOrEmpty(length) ? 4 : int.Parse(length);
                string codeValue  = _codeGenerator.Generate(codeLength);
                context.Session.SetString(SessionKeyPrefix_Value + codeName.Trim(), codeValue);
                var buffer = _graphicGenerator.Generate(codeValue);

                context.Response.ContentLength = buffer.Length;
                context.Response.ContentType   = "image/jpeg";
                context.Response.StatusCode    = 200;
                return(context.Response.Body.WriteAsync(buffer, 0, buffer.Length));
            }
            return(_next.Invoke(context));
        }
Exemplo n.º 27
0
        public async Task <CreateUserResult> Handle(CreateUser request, CancellationToken cancellationToken)
        {
            var validationResult = await requestValidator.Validate(request);

            if (!validationResult.IsSuccessful)
            {
                return(new CreateUserResult(validationResult.Error));
            }

            var userCode = codeGenerator.Generate();
            var imageUrl = imageUrlProvider.GetImageUrl(request.Email);

            var result = await usersRepository.CreateUser(new CreateUserModel
            {
                Email       = request.Email,
                DisplayName = request.DisplayName,
                Password    = request.Password,
                Code        = userCode,
                ImageUrl    = imageUrl,
            });

            if (!result.IsSuccessful)
            {
                return(new CreateUserResult(result.Error));
            }

            return(new CreateUserResult
            {
                User = new UserModel
                {
                    UserId = result.Model.UserId,
                    Email = result.Model.Email,
                    DisplayName = result.Model.DisplayName,
                    UserName = result.Model.UserName,
                    Code = result.Model.Code,
                    ImageUrl = result.Model.ImageUrl
                }
            });
        }
Exemplo n.º 28
0
        public async Task <int> GenerateVendorCodesAsync(int vendorCodeTypeId, int numberOfCodes)
        {
            VerifyManagementPermission();
            var codeType = await _vendorCodeTypeRepository.GetByIdAsync(vendorCodeTypeId);

            if (codeType == null)
            {
                throw new GraException("Unable to find vendor code type.");
            }
            if (codeType.SiteId != GetCurrentSiteId())
            {
                throw new GraException("Code type provided does not match current site.");
            }

            int count      = 1;
            var vendorCode = new VendorCode
            {
                IsUsed           = false,
                SiteId           = codeType.SiteId,
                VendorCodeTypeId = codeType.Id,
            };

            for (; count <= System.Math.Min(numberOfCodes, 5000); count++)
            {
                vendorCode.Code = _codeGenerator.Generate(15);
                await _vendorCodeRepository.AddAsync(GetClaimId(ClaimType.UserId), vendorCode);

                if (count % 1000 == 0)
                {
                    await _vendorCodeRepository.SaveAsync();
                }
            }
            await _vendorCodeRepository.SaveAsync();

            return(--count);
        }
Exemplo n.º 29
0
 private void Generate(ICodeGenerator generator)
 {
     string input = rtxtInput.Text.Trim();
     if (string.IsNullOrEmpty(input))
     {
         rtxtInput.Text = generator.ExampleInput;
         return;
     }
     string output = generator.Generate(rtxtInput.Lines);
     rtxtOutput.Text = output;
 }
Exemplo n.º 30
0
 public Game(ICodeGenerator codeGenerator)
 {
     code = codeGenerator.Generate();
 }
Exemplo n.º 31
0
 public static async Task <string> GenerateAsync(this ICodeGenerator codeGenerator, object root)
 {
     using (await codeGenerator.Lock.LockAsync())
         return(await Task.Run(() => codeGenerator.Generate(root)));
 }