예제 #1
0
        //Description: Reakce na přijatou obnovovací sekvenci událostí. Může být určen jen pro entitu
        public async Task ReplayEvents(List <string> stream, Guid?entityId)
        {
            //Description: Deserializace všech zpráv z Json
            var messages = new List <Message>();

            foreach (var item in stream)
            {
                messages.Add(JsonConvert.DeserializeObject <Message>(item));
            }
            //Description: Provedení setřídění podle data vytvoření
            var replayOrderedStream = messages.OrderBy(d => d.Created);

            //Description: Postupné zpracování zpráv
            foreach (var msg in replayOrderedStream)
            {
                //Description: Reakce na zprávy podle typu události
                switch (msg.MessageType)
                {
                case MessageType.UzivatelCreated:
                    var create    = JsonConvert.DeserializeObject <EventUzivatelCreated>(msg.Event);
                    var forCreate = db.Uzivatele.FirstOrDefault(u => u.UzivatelId == create.UzivatelId);
                    if (forCreate == null)
                    {
                        forCreate = Create(create);
                        db.Uzivatele.Add(forCreate);
                        db.SaveChanges();
                    }
                    break;

                case MessageType.UzivatelRemoved:
                    var remove    = JsonConvert.DeserializeObject <EventUzivatelRemoved>(msg.Event);
                    var forRemove = db.Uzivatele.FirstOrDefault(u => u.UzivatelId == remove.UzivatelId);
                    if (forRemove != null)
                    {
                        db.Uzivatele.Remove(forRemove);
                    }

                    break;

                case MessageType.UzivatelUpdated:
                    var update    = JsonConvert.DeserializeObject <EventUzivatelUpdated>(msg.Event);
                    var forUpdate = db.Uzivatele.FirstOrDefault(u => u.UzivatelId == update.UzivatelId);
                    if (forUpdate != null)
                    {
                        forUpdate = Modify(update, forUpdate);
                        db.Uzivatele.Update(forUpdate);
                        db.SaveChanges();
                    }
                    break;
                }
            }
            await db.SaveChangesAsync();
        }
예제 #2
0
 public void AddFlat(Flat newflat)
 {
     try
     {
         ServiceContext.Flats.Add(newflat);
         ServiceContext.SaveChanges();
         OnAction(DebugLevel.Information, string.Format("Getting all deals"), "", "", DateTime.Now);
     }
     catch (Exception ex)
     {
         OnAction(DebugLevel.Error, string.Format("error adding {0}", newflat.GetType()), ex.Source, ex.StackTrace, DateTime.Now);
     }
 }
예제 #3
0
        public async Task ReplayEvents(List <string> stream, Guid?entityId)
        {
            var messages = new List <Message>();

            foreach (var item in stream)
            {
                messages.Add(JsonConvert.DeserializeObject <Message>(item));
            }
            var replayOrderedStream = messages.OrderBy(d => d.Created);

            foreach (var msg in replayOrderedStream)
            {
                switch (msg.MessageType)
                {
                case MessageType.DochazkaCreated:
                    var create    = JsonConvert.DeserializeObject <EventDochazkaCreated>(msg.Event);
                    var forCreate = db.Dochazka.FirstOrDefault(u => u.DochazkaId == create.DochazkaId);
                    if (forCreate == null)
                    {
                        forCreate = Create(create);
                        db.Dochazka.Add(forCreate);
                        db.SaveChanges();
                    }

                    break;

                case MessageType.DochazkaDeleted:
                    var remove    = JsonConvert.DeserializeObject <EventDochazkaDeleted>(msg.Event);
                    var forRemove = db.Dochazka.FirstOrDefault(u => u.DochazkaId == remove.DochazkaId);
                    if (forRemove != null)
                    {
                        db.Dochazka.Remove(forRemove);
                    }

                    break;

                case MessageType.DochazkaUpdated:
                    var update    = JsonConvert.DeserializeObject <EventDochazkaUpdated>(msg.Event);
                    var forUpdate = db.Dochazka.FirstOrDefault(u => u.DochazkaId == update.DochazkaId);
                    if (forUpdate != null)
                    {
                        forUpdate = Modify(update, forUpdate);
                        db.Dochazka.Update(forUpdate);
                        db.SaveChanges();
                    }
                    break;
                }
            }
            await db.SaveChangesAsync();
        }
예제 #4
0
        public void AddRegion(Region region)
        {
            try
            {
                ServiceContext.Regions.Add(region);
                ServiceContext.SaveChanges();
                OnAction(DebugLevel.Information, "Item" + region.GetType() + " added", "location", "stack", DateTime.Now);
            }

            catch (Exception ex)
            {
                OnAction(DebugLevel.Information, ex.Message, ex.Source, ex.StackTrace, DateTime.Now);
            }
        }
예제 #5
0
        public void AddDeal(Deal newdeal)
        {
            try
            {
                ServiceContext.Deals.Add(newdeal);
                ServiceContext.SaveChanges();
                OnAction(DebugLevel.Information, string.Format("add {0}", newdeal.GetType()), newdeal.Flat.Region.Name, "", DateTime.Now);
            }

            catch (Exception ex)
            {
                OnAction(DebugLevel.Error, ex.Message, ex.Source, ex.StackTrace, DateTime.Now);
            }
        }
예제 #6
0
        private void CreateEditions()
        {
            var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);

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

                /* Add desired features to the standard edition, if wanted... */
            }
        }
예제 #7
0
        public bool Add(Attachment entity)
        {
            var content = new AttachmentContent {
                Content = entity.Content
            };

            entity.InternalContent = content;

            Database.AttachmentContents.Add(content);
            Database.Attachments.Add(entity);

            Database.SaveChanges();

            return(true);
        }
예제 #8
0
 public static void GenerateBaseTemplateSeeds(ServiceDbContext serviceDbContext)
 {
     if (!serviceDbContext.Template.Any())
     {
         serviceDbContext.Template.AddRange(Templates);
         serviceDbContext.SaveChanges();
     }
 }
예제 #9
0
        public void Create()
        {
            new DefaultEditionCreator(_context).Create();
            new DefaultLanguagesCreator(_context).Create();
            new HostRoleAndUserCreator(_context).Create();
            new DefaultSettingsCreator(_context).Create();

            _context.SaveChanges();
        }
예제 #10
0
        private void AddLanguageIfNotExists(ApplicationLanguage language)
        {
            if (_context.Languages.IgnoreQueryFilters().Any(l => l.TenantId == language.TenantId && l.Name == language.Name))
            {
                return;
            }

            _context.Languages.Add(language);
            _context.SaveChanges();
        }
예제 #11
0
        private void AddSettingIfNotExists(string name, string value, int?tenantId = null)
        {
            if (_context.Settings.IgnoreQueryFilters().Any(s => s.Name == name && s.TenantId == tenantId && s.UserId == null))
            {
                return;
            }

            _context.Settings.Add(new Setting(tenantId, null, name, value));
            _context.SaveChanges();
        }
예제 #12
0
        public bool Add(Certificate entity)
        {
            var content = new CertificateContent {
                Content = entity.Content
            };

            if (Database.Certificates.Any(c => c.Name.Equals(entity.Name)))
            {
                return(false);
            }

            entity.InternalContent = content;

            Database.CertificateContents.Add(content);
            Database.Certificates.Add(entity);

            Database.SaveChanges();

            return(true);
        }
예제 #13
0
        public IActionResult Add(AddUserViewModel addUserViewModel)
        {
            if (ModelState.IsValid)
            {
                User newUser = new User
                {
                    Username = addUserViewModel.Username,
                    Email    = addUserViewModel.Email,
                    Password = addUserViewModel.Password
                };


                context.Users.Add(newUser);
                context.SaveChanges();

                return(Redirect("Index?username="******"VieUserProf/"+newUser.ID);
            }

            return(View(addUserViewModel));
        }
예제 #14
0
        private void CreateProgramConfig()
        {
            var defaultProgramType = new ProgramType {
                Name = "请问请问·"
            };

            if (_context.ProgramTypes.IgnoreQueryFilters().Any(s => s.Name == defaultProgramType.Name))
            {
                return;
            }

            _context.ProgramTypes.Add(defaultProgramType);
            _context.SaveChanges();
        }
예제 #15
0
        public IActionResult Add(AddServiceViewModel addServiceViewModel)
        {
            if (ModelState.IsValid)
            {
                Services newService = new Services
                {
                    ServiceName = addServiceViewModel.ServiceName,
                    ServiceDesc = addServiceViewModel.ServiceDesc
                };

                context.Services.Add(newService);
                context.SaveChanges();

                return(Redirect("/Service"));
            }

            return(View(addServiceViewModel));
        }
예제 #16
0
        private void CreateDefaultTenant()
        {
            // Default tenant

            var defaultTenant = _context.Tenants.IgnoreQueryFilters().FirstOrDefault(t => t.TenancyName == AbpTenantBase.DefaultTenantName);

            if (defaultTenant == null)
            {
                defaultTenant = new Tenant(AbpTenantBase.DefaultTenantName, AbpTenantBase.DefaultTenantName);

                var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
                if (defaultEdition != null)
                {
                    defaultTenant.EditionId = defaultEdition.Id;
                }

                _context.Tenants.Add(defaultTenant);
                _context.SaveChanges();
            }
        }
        public void AddSeed(ServiceDbContext serviceDbContext)
        {
            serviceDbContext.DatacenterNode.Add(new DatacenterNode()
            {
                Name = "node01"
            });
            serviceDbContext.DatacenterNode.Add(new DatacenterNode()
            {
                Name = "node02"
            });
            serviceDbContext.DatacenterNode.Add(new DatacenterNode()
            {
                Name = "node03"
            });
            serviceDbContext.DatacenterNode.Add(new DatacenterNode()
            {
                Name = "node04"
            });

            serviceDbContext.SaveChanges();
        }
예제 #18
0
        public void AddSeed(ServiceDbContext serviceDbContext)
        {
            serviceDbContext.Cluster.Add(new Cluster()
            {
                Name    = "k3s-01",
                Id      = "testId01",
                OrderId = 3000,
                State   = "Ready"
            });

            serviceDbContext.Cluster.Add(new Cluster()
            {
                Name     = "k3s-02",
                Id       = "testId02",
                OrderId  = 3010,
                State    = "Ready",
                DeleteAt = DateTime.UtcNow.AddDays(-1)
            });

            serviceDbContext.Cluster.Add(new Cluster()
            {
                Name    = "k3s-03",
                Id      = "testId03",
                OrderId = 3020,
                State   = "Ready"
            });

            serviceDbContext.Cluster.Add(new Cluster()
            {
                Name    = "k3s-04",
                Id      = "testId04",
                OrderId = 3030,
                State   = "Waiting",
                Cpu     = 2,
                Node    = 4
            });

            serviceDbContext.SaveChanges();
        }
        public IActionResult Add(AddProfessionalViewModel addProfessionalViewModels)
        {
            if (ModelState.IsValid)
            {
                Services newService = context.Services.Single(s => s.ID == addProfessionalViewModels.ServicesID);

                Professional newProf = new Professional
                {
                    Name        = addProfessionalViewModels.Name,
                    Description = addProfessionalViewModels.Description,
                    Email       = addProfessionalViewModels.Email,
                    Services    = newService
                };

                context.Professionals.Add(newProf);
                context.SaveChanges();

                return(Redirect("/Professional"));
            }

            return(View(addProfessionalViewModels));
        }
예제 #20
0
        public async Task <ActionResult <IEnumerable <Catalogue> > > Getcatalogues()
        {
            _context.Database.EnsureCreated();
            if (!_context.catalogues.Any())
            {
                _context.catalogues.Add(new Catalogue()
                {
                    catalogueName = ".NET Core",
                    catalogueType = "Training",
                    description   = "Level: Begonner",
                    rating        = 4.2f
                });

                //Gives the count of data which in the db not in memory.
                var proxydata = _context.catalogues.Count();

                //Gives the count of data in the local or in memory. Initiallly its 0 when no data in db
                var localData = _context.catalogues.Local.Count();

                // Here the changes will be saved
                _context.SaveChanges();
            }
            return(await _context.catalogues.ToListAsync());
        }
예제 #21
0
        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();
            }

            // Grant all permissions to admin role for host

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

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

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = null,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = adminRoleForHost.Id
                })
                    );
                _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,
                    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();

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

                _context.SaveChanges();
            }
        }
예제 #22
0
        //public static bool subThread { get; set; }
        public static IServiceCollection AddNofiyTask(this IServiceCollection services, int index)
        {
            var dbOption = services.BuildServiceProvider().GetService <DbContextOptions <ServiceDbContext> >();

            Test = dbOption;
            var oaService   = services.BuildServiceProvider().GetService <IOaSystemOperationService>();
            var userProfile = GetUserProfiles(dbOption).GetAwaiter().GetResult();

            userProfile.Add(new UserProfile()
            {
                Number = "111", Password = "******", UserName = "******"
            });

            var temp = new List <UserProfile>();
            var arry = userProfile.OrderBy(u => u.Number).ToArray();

            for (var i = 0; i < arry.Length; i++)
            {
                if (i % 3 == index)
                {
                    temp.Add(arry[i]);
                }
            }

            ThreadPool.QueueUserWorkItem(async _ =>
            {
                var subScriptions = new List <MessageService>();
                var errors        = new Dictionary <string, string>();
                Parallel.ForEach(userProfile, async u =>
                {
                    try
                    {
                        var maileManager = new MailManager(u.UserName + "@scrbg.com", u.Password);
                        NotiMax.MailManagerMax.Add(1);
                        var subScription = await maileManager._exchangeService.SubscribeToPullNotifications(
                            new FolderId[] { WellKnownFolderName.Inbox }, 1440, null, EventType.NewMail);
                        subScriptions.Add(new MessageService()
                        {
                            MailManager = maileManager, Pull = subScription, Number = u.Number
                        });
                    }
                    catch (Exception e)
                    {
                        NotiMax.Error.Add(new Dictionary <string, string>()
                        {
                            { u.UserName, u.Password }
                        });
                    }
                });

                while (true)
                {
                    try
                    {
                        Parallel.ForEach(subScriptions, async subScription =>
                        {
                            try
                            {
                                var events = subScription.Pull.GetEvents().GetAwaiter().GetResult();
                                IEnumerable <ItemEvent> itemEvents = events.ItemEvents;
                                foreach (ItemEvent itemEvent in itemEvents)
                                {
                                    if (itemEvent.EventType == EventType.NewMail)
                                    {
                                        //发送新的到OA系统
                                        var mail    = await subScription.MailManager.GetMailAsync(itemEvent.ItemId.UniqueId);
                                        var mailId  = itemEvent.ItemId.UniqueId;
                                        var subject = mail.Subject;
                                        var number  = subScription.Number;
                                        var url     = "";
                                        var first   = "你有一条新邮件提醒";
                                        var remark  = "邮件";
                                        if (mail.IsOnlineMeeting)
                                        {
                                            url    = await subScription.MailManager.GetAppointMentUrl(mail.AppointMeetingId);
                                            first  = "你有一条新会议提醒";
                                            remark = "会议";
                                        }

                                        if (string.IsNullOrWhiteSpace(url))
                                        {
                                            url = "http://appmail.scrbg.com/" + "?number=" + openskype(number).EncodeBase64();
                                        }
                                        var logStr = "url:" + url + "mailId:" + mailId + "-subject:" + subject + "-number" + number;
                                        try
                                        {
                                            oaService  = new OaSystemOperationService(new OaApiOption(), new HttpClient());
                                            var result = await oaService.SendNewMailSync(url, mailId, subject, number, first, remark);
                                            logStr    += result;
                                        }
                                        catch (Exception e)
                                        {
                                            logStr += e.ToString();
                                        }

                                        using (var db = new ServiceDbContext(Test))
                                        {
                                            db.NewMailEvents.Add(new NewMailEvent()
                                            {
                                                NewMailId = "14342",
                                                Notify    = false,
                                                Title     = number,
                                                TextBody  = logStr,
                                                DateTime  = DateTime.Now
                                            });
                                            db.SaveChanges();
                                        }
                                    }
                                }
                            }
                            catch (Exception e)
                            {
                            }
                        });
                        Thread.Sleep(5000);
                    }
                    catch (Exception e)
                    {
                    }
                }
            });
            return(services);
        }
예제 #23
0
        public void Register(RegisterUser user)
        {
            Console.WriteLine($"Żądanie rejestracji nowego użytkownika: {user.Login} {user.Password} {user.PasswordConfirm} " +
                              $"{user.Name} {user.Surname} {user.Sex} {user.Age}");

            User dbUser = new User
            {
                Login           = user.Login,
                Password        = user.Password,
                PasswordConfirm = user.PasswordConfirm,
                Name            = user.Name,
                Surname         = user.Surname,
                Sex             = user.Sex,
                Age             = user.Age,
                Avatar          = user.Avatar
            };

            using (var db = new ServiceDbContext())
            {
                bool userExists = false;

                userExists = (from entity in db.Users where entity.Login == dbUser.Login select entity).Any();

                if (!userExists)
                {
                    try
                    {
                        db.Users.Add(dbUser);
                        db.SaveChanges();
                        OperationContext.Current.GetCallbackChannel <IServerCallback>().RegisterNotify("OK");
                    }
                    catch (DbEntityValidationException ex)
                    {
                        db.Users.Remove(dbUser);
                        string message = "";

                        foreach (var validationErrors in ex.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                message += $"{validationError.ErrorMessage}{Environment.NewLine}";
                            }
                        }

                        Console.WriteLine(message);
                        OperationContext.Current.GetCallbackChannel <IServerCallback>().RegisterNotify($"{message}");
                    }
                    catch (EntityException ex)
                    {
                        Console.WriteLine($"Wystąpił błąd {ex.InnerException.Message}");
                        OperationContext.Current.GetCallbackChannel <IServerCallback>().RegisterNotify($"{ex.InnerException.Message}");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine($"Wystąpił błąd {ex.InnerException.Message}");
                        OperationContext.Current.GetCallbackChannel <IServerCallback>().RegisterNotify($"{ex.InnerException.Message}");
                    }
                }
                else
                {
                    Console.WriteLine("Podany login jest już zajęty");
                    OperationContext.Current.GetCallbackChannel <IServerCallback>().RegisterNotify("Podany login jest już zajęty");
                }
            }
        }
예제 #24
0
 public Employee AddEmployee(Employee employee)
 {
     _context.Employees.Add(employee);
     _context.SaveChanges();
     return(_context.Employees.SingleOrDefault(i => i.Id == employee.Id));
 }
예제 #25
0
        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 ServiceAuthorizationProvider())
                              .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;

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

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