public static Response Create(RegisterModel registerModel)
        {
            var response = new Response();
            var context  = new AdminDbContext();

            if (context.Users.Any(u => u.Email.Equals(registerModel.Email)))
            {
                response.AddMessage(false, "This email is already registered", ResponseMessageType.Warning);
            }
            else
            {
                var user = new User();
                user.Email        = registerModel.Email;
                user.Password     = GenerateHashWithSalt(registerModel.Password, registerModel.Email);
                user.PasswordSalt = Path.GetRandomFileName();
                context.Users.Add(user);
                context.SaveChanges();
            }
            return(response);
        }
        private void CreateEditions()
        {
            var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);

            if (defaultEdition == null)
            {
                defaultEdition = new SubscribableEdition {
                    Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName
                };
                _context.Editions.Add(defaultEdition);
                _context.SaveChanges();

                /* Add desired features to the standard edition, if wanted... */
            }

            if (defaultEdition.Id > 0)
            {
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.ChatFeature, true);
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.TenantToTenantChatFeature, true);
                CreateFeatureIfNotExists(defaultEdition.Id, AppFeatures.TenantToHostChatFeature, true);
            }
        }
Exemplo n.º 3
0
 public ActionResult AdminRegister(AdminDetails admin)
 {
     if (ModelState.IsValid)
     {
         var context  = new AdminDbContext();
         var isUnique = context.Admin.Where(n => n.AdminID == admin.AdminID);
         foreach (var i in isUnique)
         {
             if (i.AdminID == admin.AdminID)
             {
                 ViewData["Error"] = "AdminID Already Exists";
                 return(View(admin));
             }
         }
         admin.RoleID = 1;
         context.Admin.Add(admin);
         context.SaveChanges();
         TempData["saved"] = "Admin Details Added to Database Sucessfull!";
         return(RedirectToAction("AdminLogin"));
     }
     return(View());
 }
        private void CreateRolesAndUsers()
        {
            // Admin role

            var adminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin);

            if (adminRole == null)
            {
                adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin)
                {
                    IsStatic = true
                }).Entity;
                _context.SaveChanges();
            }

            // Grant all permissions to admin role

            var grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                     .OfType <RolePermissionSetting>()
                                     .Where(p => p.TenantId == _tenantId && p.RoleId == adminRole.Id)
                                     .Select(p => p.Name)
                                     .ToList();

            var permissions = PermissionFinder
                              .GetAllPermissions(new AdminAuthorizationProvider())
                              .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant) &&
                                     !grantedPermissions.Contains(p.Name))
                              .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = _tenantId,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = adminRole.Id
                })
                    );
                _context.SaveChanges();
            }

            // Admin user

            var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName);

            if (adminUser == null)
            {
                adminUser                  = User.CreateTenantAdminUser(_tenantId, "*****@*****.**");
                adminUser.Password         = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "123qwe");
                adminUser.IsEmailConfirmed = true;
                adminUser.IsActive         = true;
                adminUser.UserType         = UserType.Admin;

                _context.Users.Add(adminUser);
                _context.SaveChanges();

                // Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                _context.SaveChanges();
            }
        }
Exemplo n.º 5
0
        private void CreateHostRoleAndUsers()
        {
            var roleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);

            if (roleForHost == null)
            {
                roleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }
            var grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                     .OfType <RolePermissionSetting>()
                                     .Where(p => p.TenantId == null && p.RoleId == roleForHost.Id)
                                     .Select(p => p.Name)
                                     .ToList();

            var permissions = PermissionFinder
                              .GetAllPermissions(new AdminAuthorizationProvider())
                              .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host) &&
                                     !grantedPermissions.Contains(p.Name) &&
                                     GrantPermissionRoles.PermissionRoles[StaticRoleNames.Host.Admin].Contains(p.Name))
                              .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = null,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = roleForHost.Id
                })
                    );
                _context.SaveChanges();
            }

            int roleAdminId = roleForHost.Id;

            roleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Hr);
            if (roleForHost == null)
            {
                roleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Hr, StaticRoleNames.Host.Hr)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }
            grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                 .OfType <RolePermissionSetting>()
                                 .Where(p => p.TenantId == null && p.RoleId == roleForHost.Id)
                                 .Select(p => p.Name)
                                 .ToList();

            permissions = PermissionFinder
                          .GetAllPermissions(new AdminAuthorizationProvider())
                          .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host) &&
                                 !grantedPermissions.Contains(p.Name) &&
                                 GrantPermissionRoles.PermissionRoles[StaticRoleNames.Host.Hr].Contains(p.Name))
                          .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = null,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = roleForHost.Id
                })
                    );
                _context.SaveChanges();
            }

            roleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.User);
            if (roleForHost == null)
            {
                roleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.User, StaticRoleNames.Host.User)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }
            grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                 .OfType <RolePermissionSetting>()
                                 .Where(p => p.TenantId == null && p.RoleId == roleForHost.Id)
                                 .Select(p => p.Name)
                                 .ToList();

            permissions = PermissionFinder
                          .GetAllPermissions(new AdminAuthorizationProvider())
                          .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host) &&
                                 !grantedPermissions.Contains(p.Name) &&
                                 GrantPermissionRoles.PermissionRoles[StaticRoleNames.Host.User].Contains(p.Name))
                          .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = null,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = roleForHost.Id
                })
                    );
                _context.SaveChanges();
            }

            var adminUserForHost = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == null && u.UserName == AbpUserBase.AdminUserName);

            if (adminUserForHost == null)
            {
                var user = new User
                {
                    TenantId         = null,
                    UserName         = AbpUserBase.AdminUserName,
                    Name             = "admin",
                    Surname          = "admin",
                    EmailAddress     = "*****@*****.**",
                    IsEmailConfirmed = true,
                    IsActive         = true
                };

                user.Password = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(user, "123qwe");
                user.SetNormalizedNames();

                adminUserForHost = _context.Users.Add(user).Entity;
                _context.SaveChanges();

                _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, roleAdminId));
                _context.SaveChanges();

                _context.SaveChanges();
            }
        }
Exemplo n.º 6
0
        public static IEnumerable <ApiProgressModel> UpdateETenderContracts(int onPage, int requests)
        {
            var tenderUrl = "http://etender.gov.md/json/contractList?rows=" + onPage;
            var index     = 0;

            for (var request = 1; request <= requests; request++)
            {
                var context                  = new AdminDbContext();
                var tenderType               = context.EntityTypes.FirstOrDefault(et => et.Code == 3);
                var contractRelationType     = context.RelationTypes.FirstOrDefault(et => et.Code == 1);
                var bankType                 = context.EntityTypes.FirstOrDefault(et => et.Code.Equals(9));
                var accountOwnerRelationType = context.RelationTypes.First(rt => rt.Code.Equals(11));
                var tenderCreatorType        = context.RelationTypes.First(rt => rt.Code.Equals(5));

                var personType  = context.EntityTypes.First(rt => rt.Code.Equals(1));
                var companyType = context.EntityTypes.First(rt => rt.Code.Equals(2));

                var url = tenderUrl + "&page=" + request;
                yield return(new ApiProgressModel {
                    Message = "Start to collect data"
                });

                var tenderResultObject = APIClient.GetApiObject <Models.ETender.Contracts.RootObject>(url);
                var totalRecords       = tenderResultObject.rows.Count();
                yield return(new ApiProgressModel {
                    Message = "Got " + totalRecords + " records"
                });

                foreach (var row in tenderResultObject.rows)
                {
                    var progress = new ApiProgressModel();
                    if (!context.Relations.Any(e => e.TypeId.Equals(contractRelationType.Id) && e.Attributes.Any(attr => attr.Name.Equals("ETender Id") && attr.Value.Equals(row.id.ToString()))))
                    {
                        var contractRelation = new Relation();
                        contractRelation.TypeId = contractRelationType.Id;
                        context.Relations.Add(contractRelation);
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Amount", Value = row.amount.ToString()
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Contract type", Value = row.contractType.mdValue ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Contract date", Value = row.contractDate ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "State", Value = row.status.mdValue ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "State date", Value = row.currentStatusDate ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Contract number", Value = row.contractNumber ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "ETender offer id", Value = row.fkOfferId.ToString()
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "ETender decision id", Value = row.currentStatusDate ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Register date", Value = row.registerDate ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Final date", Value = row.finalDate ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Contract real number", Value = row.contractRealNumber ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "Note", Value = row.note ?? string.Empty
                        });
                        contractRelation.Attributes.Add(new RelationAttribute()
                        {
                            Name = "ETender Id", Value = row.id.ToString()
                        });
                        contractRelation.References.Add(new RelationReference()
                        {
                            Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                        });

                        var stateOrgTypeCode = row.tender.stateOrg != null ? row.tender.stateOrg.orgLegalForm != null?row.tender.stateOrg.orgLegalForm.id:590 : 590;
                        var stateOrgType     = context.EntityTypes.FirstOrDefault(et => et.Code.Equals(stateOrgTypeCode));
                        if (stateOrgType == null)
                        {
                            stateOrgType = new EntityType()
                            {
                                Code = row.tender.stateOrg.orgLegalForm.id, Name = row.tender.stateOrg.orgLegalForm.mdValue
                            };
                            context.EntityTypes.Add(stateOrgType);
                            yield return(new ApiProgressModel {
                                Message = "New entity type added  " + stateOrgType.Name
                            });
                        }
                        var stateOrgEntity = context.Entities.FirstOrDefault(e => e.Type.Code.Equals(stateOrgType.Code) && e.Attributes.Any(attr => attr.Name.Equals("Code") && attr.Value.Equals(row.tender.stateOrg.code)));
                        if (stateOrgEntity == null)
                        {
                            stateOrgEntity      = new Entity();
                            stateOrgEntity.Name = row.tender.stateOrg.orgName;
                            stateOrgEntity.Type = stateOrgType;
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Code", Value = row.tender.stateOrg.code ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "ETender Id", Value = row.tender.stateOrg.id.ToString()
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Address", Value = row.tender.stateOrg.address ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Account", Value = row.tender.stateOrg.account ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Treasuty account", Value = row.tender.stateOrg.treasutyAcc ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Fiscal code", Value = row.tender.stateOrg.fiscalCode != null ? row.tender.stateOrg.fiscalCode.ToString() : string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Account", Value = row.tender.stateOrg.account ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Bank account", Value = row.tender.stateOrg.bankAccount != null?row.tender.stateOrg.bankAccount.ToString() : string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Phone", Value = row.tender.stateOrg.phone ?? string.Empty
                            });
                            stateOrgEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Fax", Value = row.tender.stateOrg.fax ?? string.Empty
                            });
                            if (row.addAccordReason != null)
                            {
                                stateOrgEntity.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Accord reason", Value = row.addAccordReason.ToString()
                                });
                            }
                            if (row.addAccordReasonDocuments != null)
                            {
                                stateOrgEntity.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Accord reason", Value = row.addAccordReasonDocuments.ToString()
                                });
                            }
                            if (row.addAccordShortDescr != null)
                            {
                                stateOrgEntity.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Accord reason short description", Value = row.addAccordShortDescr.ToString()
                                });
                            }

                            stateOrgEntity.References.Add(new EntityReference()
                            {
                                Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                            });
                            context.Entities.Add(stateOrgEntity);

                            yield return(new ApiProgressModel {
                                Message = "Creating " + stateOrgType.Name + " " + stateOrgEntity.Name
                            });
                        }

                        if (row.tender.stateOrg.bank != null)
                        {
                            var bank = context.Entities.FirstOrDefault(e => e.TypeId.Equals(bankType.Id) && e.Attributes.Any(attr => attr.Name.Equals("BIC") && attr.Value.Equals(row.tender.stateOrg.bank.sapiCode)));
                            if (bank == null)
                            {
                                bank      = new Entity();
                                bank.Name = row.tender.stateOrg.bank.mdShort;
                                bank.Type = bankType;
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Short Name", Value = row.tender.stateOrg.bank.mdShort ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "mfo Code", Value = row.tender.stateOrg.bank.mfoCode ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Fiscal Code", Value = row.tender.stateOrg.bank.fiscalCode ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "BIC", Value = row.tender.stateOrg.bank.sapiCode ?? string.Empty
                                });
                                bank.References.Add(new EntityReference()
                                {
                                    Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                                });
                                context.Entities.Add(bank);
                                yield return(new ApiProgressModel {
                                    Message = "Creating entity Bank " + bank.Name
                                });
                            }

                            if (!context.Relations.Any(r => r.TypeId.Equals(accountOwnerRelationType.Id) && r.RelationEntities.Any(re => re.EntityId.Equals(stateOrgEntity.Id) && r.RelationEntities.Any(re1 => re1.EntityId.Equals(bank.Id)))))
                            {
                                var bankRelation = new Relation();
                                bankRelation.TypeId = accountOwnerRelationType.Id;
                                bankRelation.Type   = accountOwnerRelationType;
                                bankRelation.RelationEntities.Add(new RelationEntity {
                                    Entity = bank, MemberType = 4
                                });
                                bankRelation.RelationEntities.Add(new RelationEntity {
                                    Entity = stateOrgEntity, MemberType = 3
                                });
                                bankRelation.Attributes.Add(new RelationAttribute {
                                    Name = "Account", Value = row.tender.stateOrg.account ?? string.Empty
                                });
                                bankRelation.References.Add(new RelationReference()
                                {
                                    Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                                });
                                context.Relations.Add(bankRelation);
                            }
                        }

                        var tenderEntity = context.Entities.FirstOrDefault(e => e.TypeId.Equals(tenderType.Id) && e.Attributes.Any(attr => attr.Name.Equals("ETender Id") && attr.Value.Equals(row.tender.id.ToString())));
                        if (tenderEntity == null)
                        {
                            tenderEntity        = new Entity();
                            tenderEntity.TypeId = tenderType.Id;
                            tenderEntity.Name   = row.tender.tenderData.goodsDescr;
                            context.Entities.Add(tenderEntity);
                            yield return(new ApiProgressModel {
                                Message = "Creating new Tender entity " + tenderEntity.Name
                            });

                            tenderEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "ETender Id", Value = row.id.ToString()
                            });
                            tenderEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Registration number ", Value = row.tender.regNumber ?? string.Empty
                            });
                            tenderEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Goods", Value = row.tender.tenderData.goodsDescr ?? string.Empty
                            });
                            tenderEntity.References.Add(new EntityReference()
                            {
                                Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                            });
                            context.Entities.Add(tenderEntity);
                            var relation = new Relation();

                            relation.Type = tenderCreatorType;
                            relation.RelationEntities.Add(new RelationEntity {
                                Entity = stateOrgEntity
                            });
                            relation.RelationEntities.Add(new RelationEntity {
                                Entity = tenderEntity
                            });
                            context.Relations.Add(relation);
                        }

                        var seller = context.Entities.FirstOrDefault(e => e.TypeId.Equals(companyType.Id) && e.Name.Equals(row.participant.fullName));
                        if (seller == null)
                        {
                            seller = context.Entities.FirstOrDefault(e => e.TypeId.Equals(personType.Id) && e.Name.Equals(row.participant.fullName));
                        }
                        if (seller == null)
                        {
                            seller = new Entity();

                            seller.Name = row.participant.fullName;
                            seller.Attributes.Add(new EntityAttribute()
                            {
                                Name = "ETender Id", Value = row.participant.id.ToString()
                            });
                            if (row.participant.juristicPerson == 1)
                            {
                                seller.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Juridical name", Value = row.participant.jurName ?? string.Empty
                                });
                                seller.Type = companyType;
                            }
                            else
                            {
                                seller.Type = personType;
                                seller.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "First name", Value = row.participant.name ?? string.Empty
                                });
                                seller.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Last name", Value = row.participant.lastName ?? string.Empty
                                });
                                seller.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Patronymic", Value = row.participant.patronymic ?? string.Empty
                                });
                            }
                            seller.References.Add(new EntityReference()
                            {
                                Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/contracte"
                            });
                            context.Entities.Add(seller);
                        }

                        contractRelation.RelationEntities.Add(new RelationEntity {
                            Entity = tenderEntity
                        });
                        contractRelation.RelationEntities.Add(new RelationEntity {
                            Entity = stateOrgEntity, MemberType = 1
                        });
                        contractRelation.RelationEntities.Add(new RelationEntity {
                            Entity = seller, MemberType = 2
                        });
                        context.Relations.Add(contractRelation);
                        context.SaveChanges();
                        index++;
                        yield return(new ApiProgressModel {
                            Message = index + "  Saved!!!"
                        });
                    }
                    else
                    {
                        yield return(new ApiProgressModel {
                            Message = "Contract with ETender Id = " + row.id + " exists"
                        });
                    }
                }
            }
            yield return(new ApiProgressModel {
                Message = "Processing data finished !!!!"
            });
        }
Exemplo n.º 7
0
        public static IEnumerable <ApiProgressModel> UpdateETenders(int onPage, int requests)
        {
            var tenderUrl = "http://etender.gov.md/json/tenderList?rows=" + onPage;
            var index     = 0;

            for (var request = 1; request <= requests; request++)
            {
                var context    = new AdminDbContext();
                var tenderType = context.EntityTypes.FirstOrDefault(et => et.Code.Equals(3));
                var bankType   = context.EntityTypes.FirstOrDefault(et => et.Code.Equals(9));
                var accountOwnerRelationType = context.RelationTypes.First(rt => rt.Code.Equals(11));
                var tenderCreatorType        = context.RelationTypes.First(rt => rt.Code.Equals(5));


                var url = tenderUrl + "&page=" + request;
                yield return(new ApiProgressModel {
                    Message = "Start to collect data"
                });

                var tenderResultObject = APIClient.GetApiObject <Models.ETender.RootObject>(url);
                var totalRecords       = tenderResultObject.rows.Count();
                yield return(new ApiProgressModel {
                    Message = "Got " + totalRecords + " records"
                });

                foreach (var row in tenderResultObject.rows)
                {
                    index++;
                    var progress = new ApiProgressModel();
                    if (!context.Entities.Any(e => e.TypeId.Equals(tenderType.Id) && e.Attributes.Any(attr => attr.Name.Equals("ETender Id") && attr.Value.Equals(row.id.ToString()))))
                    {
                        var entity = new Entity();
                        entity.TypeId = tenderType.Id;
                        entity.Name   = row.tenderData.goodsDescr;
                        context.Entities.Add(entity);
                        yield return(new ApiProgressModel {
                            Message = "Creating new Tender entity " + entity.Name
                        });

                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "ETender Id", Value = row.id.ToString()
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Tender type", Value = row.tenderType.mdValue ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Tender status at " + row.refCurrentStatusDate, Value = row.tenderStatus.mdValue
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Tender open date", Value = row.refTendeOpenDate ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Registration number ", Value = row.regNumber ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Goods", Value = row.tenderData.goods.mdValue ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Tender status", Value = row.tenderData.status.mdValue ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Language", Value = row.tenderData.language.mdValue ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Place offers at", Value = row.tenderData.pressOffersPlace ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Place offers until", Value = row.tenderData.pressOffersDate ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Open date time", Value = row.tenderData.deliveryTerms.mdValue ?? string.Empty
                        });
                        entity.Attributes.Add(new EntityAttribute()
                        {
                            Name = "Notes", Value = row.notes ?? string.Empty
                        });
                        entity.References.Add(new EntityReference()
                        {
                            Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/proceduricard?pid=" + row.id
                        });

                        var entityCode = row.stateOrg.orgLegalForm != null ? row.stateOrg.orgLegalForm.id : 590;
                        var entityType = context.EntityTypes.FirstOrDefault(et => et.Code.Equals(entityCode));
                        if (entityType == null)
                        {
                            entityType = new EntityType()
                            {
                                Code = row.stateOrg.orgLegalForm.id, Name = row.stateOrg.orgLegalForm.mdValue
                            };
                            context.EntityTypes.Add(entityType);
                            yield return(new ApiProgressModel {
                                Message = "New entity type added  " + entityType.Name
                            });
                        }
                        var stateEntity = context.Entities.FirstOrDefault(e => e.Type.Code.Equals(entityType.Code) && e.Attributes.Any(attr => attr.Name.Equals("Code") && attr.Value.Equals(row.stateOrg.code)));

                        if (stateEntity == null)
                        {
                            stateEntity      = new Entity();
                            stateEntity.Name = row.stateOrg.orgName;
                            stateEntity.Type = entityType;
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Code", Value = row.stateOrg.code ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "ETender Id", Value = row.stateOrg.id.ToString()
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Address", Value = row.stateOrg.address ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Account", Value = row.stateOrg.account ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Treasuty account", Value = row.stateOrg.treasutyAcc ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Fiscal code", Value = row.stateOrg.fiscalCode != null ? row.stateOrg.fiscalCode.ToString() : string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Account", Value = row.stateOrg.account ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Bank account", Value = row.stateOrg.bankAccount != null?row.stateOrg.bankAccount.ToString():string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Phone", Value = row.stateOrg.phone ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Fax", Value = row.stateOrg.fax ?? string.Empty
                            });
                            stateEntity.Attributes.Add(new EntityAttribute()
                            {
                                Name = "Email", Value = row.stateOrg.email ?? string.Empty
                            });
                            stateEntity.References.Add(new EntityReference()
                            {
                                Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/proceduricard?pid=" + row.id
                            });

                            context.Entities.Add(stateEntity);
                            yield return(new ApiProgressModel {
                                Message = "Creating " + entityType.Name + " " + stateEntity.Name
                            });
                        }

                        if (row.stateOrg.bank != null)
                        {
                            var bank = context.Entities.FirstOrDefault(e => e.TypeId.Equals(bankType.Id) && e.Attributes.Any(attr => attr.Name.Equals("BIC") && attr.Value.Equals(row.stateOrg.bank.sapiCode)));
                            if (bank == null)
                            {
                                bank      = new Entity();
                                bank.Name = row.stateOrg.bank.mdShort;
                                bank.Type = bankType;
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Short Name", Value = row.stateOrg.bank.mdShort ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "mfo Code", Value = row.stateOrg.bank.mfoCode ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "Fiscal Code", Value = row.stateOrg.bank.fiscalCode ?? string.Empty
                                });
                                bank.Attributes.Add(new EntityAttribute()
                                {
                                    Name = "BIC", Value = row.stateOrg.bank.sapiCode ?? string.Empty
                                });
                                bank.References.Add(new EntityReference()
                                {
                                    Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/proceduricard?pid=" + row.id
                                });
                                context.Entities.Add(bank);
                                yield return(new ApiProgressModel {
                                    Message = "Creating entity Bank" + bank.Name
                                });
                            }

                            if (!context.Relations.Any(r => r.TypeId.Equals(accountOwnerRelationType.Id) && r.RelationEntities.Any(re => re.EntityId.Equals(stateEntity.Id) && r.RelationEntities.Any(re1 => re1.EntityId.Equals(bank.Id)))))
                            {
                                var bankRelation = new Relation();
                                bankRelation.TypeId = accountOwnerRelationType.Id;
                                bankRelation.Type   = accountOwnerRelationType;
                                bankRelation.RelationEntities.Add(new RelationEntity {
                                    Entity = bank
                                });
                                bankRelation.RelationEntities.Add(new RelationEntity {
                                    Entity = stateEntity
                                });
                                bankRelation.Attributes.Add(new RelationAttribute {
                                    Name = "Account", Value = row.stateOrg.account ?? string.Empty
                                });
                                bankRelation.References.Add(new RelationReference()
                                {
                                    Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/proceduricard?pid=" + row.id
                                });
                                context.Relations.Add(bankRelation);
                            }
                        }
                        var relation = new Relation();
                        relation.Type = tenderCreatorType;
                        relation.RelationEntities.Add(new RelationEntity {
                            Entity = stateEntity
                        });
                        relation.RelationEntities.Add(new RelationEntity {
                            Entity = entity
                        });
                        relation.References.Add(new RelationReference()
                        {
                            Title = "Registrul de stat al achizițiilor publice", Link = "http://etender.gov.md/proceduricard?pid=" + row.id
                        });
                        context.Relations.Add(relation);
                        context.SaveChanges();
                        yield return(new ApiProgressModel {
                            Message = index + " Saved!"
                        });
                    }
                    else
                    {
                        yield return(new ApiProgressModel {
                            Message = "Tender with ETender Id = " + row.id
                        });
                    }
                }
            }
            yield return(new ApiProgressModel {
                Message = "Processing data finished !!!!"
            });
        }
Exemplo n.º 8
0
 public bool Add(Contender entity)
 {
     _context.Contenders.Add(entity);
     _context.SaveChanges();
     return(true);
 }
Exemplo n.º 9
0
        // help function for adding users
        //

        //add Admin
        public void AddAdmin(Admin admin)
        {
            adminDb.dbSet.Add(admin);
            adminDb.SaveChanges();
        }
        private void CreateRolesAndUsers()
        {
            //Admin role

            var adminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin);

            if (adminRole == null)
            {
                adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin)
                {
                    IsStatic = true
                }).Entity;
                _context.SaveChanges();
            }

            //User role

            var userRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.User);

            if (userRole == null)
            {
                _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.User, StaticRoleNames.Tenants.User)
                {
                    IsStatic = true, IsDefault = true
                });
                _context.SaveChanges();
            }

            //admin user

            var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName);

            if (adminUser == null)
            {
                adminUser                  = User.CreateTenantAdminUser(_tenantId, "*****@*****.**");
                adminUser.Password         = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "123456abcD");
                adminUser.IsEmailConfirmed = true;
                adminUser.ShouldChangePasswordOnNextLogin = true;
                adminUser.IsActive = true;

                _context.Users.Add(adminUser);
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                _context.SaveChanges();

                //User account of admin user
                if (_tenantId == 1)
                {
                    _context.UserAccounts.Add(new UserAccount
                    {
                        TenantId     = _tenantId,
                        UserId       = adminUser.Id,
                        UserName     = AbpUserBase.AdminUserName,
                        EmailAddress = adminUser.EmailAddress
                    });
                    _context.SaveChanges();
                }

                //Notification subscription
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), _tenantId, adminUser.Id, AppNotificationNames.NewUserRegistered));
                _context.SaveChanges();
            }
        }
Exemplo n.º 11
0
        private void CreateHostRoleAndUsers()
        {
            //Admin role for host

            var adminRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);

            if (adminRoleForHost == null)
            {
                adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin)
                {
                    IsStatic = true, IsDefault = true
                });
                _context.SaveChanges();
            }

            //admin user for host

            var adminUserForHost = _context.Users.FirstOrDefault(u => u.TenantId == null && u.UserName == User.AdminUserName);

            if (adminUserForHost == null)
            {
                adminUserForHost = _context.Users.Add(
                    new User
                {
                    TenantId         = null,
                    UserName         = User.AdminUserName,
                    Name             = "admin",
                    Surname          = "admin",
                    EmailAddress     = "*****@*****.**",
                    IsEmailConfirmed = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsActive = true,
                    Password = "******"     //123qwe
                });
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id));
                _context.SaveChanges();

                //Grant all permissions
                var permissions = PermissionFinder
                                  .GetAllPermissions(new AppAuthorizationProvider(true))
                                  .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host))
                                  .ToList();

                foreach (var permission in permissions)
                {
                    _context.Permissions.Add(
                        new RolePermissionSetting
                    {
                        TenantId  = null,
                        Name      = permission.Name,
                        IsGranted = true,
                        RoleId    = adminRoleForHost.Id
                    });
                }

                _context.SaveChanges();

                //User account of admin user
                _context.UserAccounts.Add(new UserAccount
                {
                    TenantId     = null,
                    UserId       = adminUserForHost.Id,
                    UserName     = User.AdminUserName,
                    EmailAddress = adminUserForHost.EmailAddress
                });

                _context.SaveChanges();
            }
        }
Exemplo n.º 12
0
 public IActionResult Index(Subscriber subscriber)
 {
     _db.Subscribers.Add(subscriber);
     _db.SaveChanges();
     return(RedirectToAction("Thanks"));
 }
        private void CreateRolesAndUsers()
        {
            //Admin role

            var adminRole = _context.Roles.FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin);

            if (adminRole == null)
            {
                adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin)
                {
                    IsStatic = true
                });
                _context.SaveChanges();

                //Grant all permissions to admin role
                var permissions = PermissionFinder
                                  .GetAllPermissions(new AppAuthorizationProvider(false))
                                  .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant))
                                  .ToList();

                foreach (var permission in permissions)
                {
                    _context.Permissions.Add(
                        new RolePermissionSetting
                    {
                        TenantId  = _tenantId,
                        Name      = permission.Name,
                        IsGranted = true,
                        RoleId    = adminRole.Id
                    });
                }

                _context.SaveChanges();
            }

            //User role

            var userRole = _context.Roles.FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.User);

            if (userRole == null)
            {
                _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.User, StaticRoleNames.Tenants.User)
                {
                    IsStatic = true, IsDefault = true
                });
                _context.SaveChanges();
            }

            //admin user

            var adminUser = _context.Users.FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == User.AdminUserName);

            if (adminUser == null)
            {
                adminUser = User.CreateTenantAdminUser(_tenantId, "*****@*****.**", "123qwe");
                adminUser.IsEmailConfirmed = true;
                adminUser.ShouldChangePasswordOnNextLogin = true;
                adminUser.IsActive = true;

                _context.Users.Add(adminUser);
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                _context.SaveChanges();

                //User account of admin user
                if (_tenantId == 1)
                {
                    _context.UserAccounts.Add(new UserAccount
                    {
                        TenantId     = _tenantId,
                        UserId       = adminUser.Id,
                        UserName     = User.AdminUserName,
                        EmailAddress = adminUser.EmailAddress
                    });
                    _context.SaveChanges();
                }
            }
        }
 /// <summary>
 /// 事务性保存
 /// </summary>
 public void Save()
 {
     _dbContext.SaveChanges();
 }
        private void CreateHostRoleAndUsers()
        {
            //Admin role for host

            var adminRoleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);

            if (adminRoleForHost == null)
            {
                adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }

            //admin user for host

            var adminUserForHost = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == null && u.UserName == AbpUserBase.AdminUserName);

            if (adminUserForHost == null)
            {
                var user = new User
                {
                    TenantId         = null,
                    UserName         = AbpUserBase.AdminUserName,
                    Name             = "admin",
                    Surname          = "admin",
                    EmailAddress     = "*****@*****.**",
                    IsEmailConfirmed = true,
                    ShouldChangePasswordOnNextLogin = true,
                    IsActive = true,
                    Password = "******" //123456abcD
                };

                user.SetNormalizedNames();

                adminUserForHost = _context.Users.Add(user).Entity;
                _context.SaveChanges();

                //Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id));
                _context.SaveChanges();

                //User account of admin user
                _context.UserAccounts.Add(new UserAccount
                {
                    TenantId     = null,
                    UserId       = adminUserForHost.Id,
                    UserName     = AbpUserBase.AdminUserName,
                    EmailAddress = adminUserForHost.EmailAddress
                });

                _context.SaveChanges();

                //Notification subscriptions
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), null, adminUserForHost.Id, AppNotificationNames.NewTenantRegistered));
                _context.NotificationSubscriptions.Add(new NotificationSubscriptionInfo(SequentialGuidGenerator.Instance.Create(), null, adminUserForHost.Id, AppNotificationNames.NewUserRegistered));

                _context.SaveChanges();
            }
        }