Example #1
0
 public virtual void Update(ApplicationGroup entity)
 {
     if (entity != null)
     {
         this.Context.Entry<ApplicationGroup>(entity).State = EntityState.Modified;
     }
 }
 public virtual void Delete(ApplicationGroup group)
 {
     this.ThrowIfDisposed();
     if (group == null)
     {
         throw new ArgumentNullException("group");
     }
     this._groupStore.Delete(group);
     this.Context.SaveChanges();
 }
 public virtual async Task DeleteAsync(ApplicationGroup group)
 {
     this.ThrowIfDisposed();
     if (group == null)
     {
         throw new ArgumentNullException("group");
     }
     this._groupStore.Delete(group);
     await this.Context.SaveChangesAsync();
 }
 public virtual void CrearGrupo(ApplicationGroup group)
 {
     this.ThrowIfDisposed();
     if (group == null)
     {
         throw new ArgumentNullException("role");
     }
     this._groupStore.Create(group);
     this.Context.SaveChanges();
 }
Example #5
0
 public void Delete(ApplicationGroup entity)
 {
     this.DbEntitySet.Remove(entity);
 }
Example #6
0
 public void Create(ApplicationGroup entity)
 {
     this.DbEntitySet.Add(entity);
 }
Example #7
0
 public static void UpdateApplicationGroup(this ApplicationGroup appGroup, ApplicationGroupViewModel appGroupViewModel)
 {
     appGroup.ID   = appGroupViewModel.ID;
     appGroup.Name = appGroupViewModel.Name;
 }
Example #8
0
        /// <summary>
        /// Get one group from db by Id
        /// </summary>
        /// <param name="id">Id of company which you need</param>
        /// <returns>ViewModel of group from db</returns>
        public GroupViewModel Get(int id)
        {
            ApplicationGroup group = unitOfWork.ApplicationGroups.GetById(id);

            return(mapper.Map <ApplicationGroup, GroupViewModel>(group));
        }
 public void RemoveApplicationGroup(ApplicationGroup row)
 {
     this.Rows.Remove(row);
 }
        public static Parameter CreateTransientConfigurationForOneParameter(IClientSession clientSession)
        {
            const string ConversionFunctionName   = "CONV_MyParam:MyApp";
            const string ApplicationGroupName     = "MyApp";
            const string ParameterGroupIdentifier = "MyParamGroup";
            const string ParameterName            = "MyParam";
            const uint   MyParamChannelId         = 999999; //must be unique
            const int    ApplicationId            = 999;
            var          parameterIdentifier      = $"{ParameterName}:{ApplicationGroupName}";

            var session = clientSession.Session;

            var transientConfigSet = session.CreateTransientConfiguration();

            var parameterGroup = new ParameterGroup(ParameterGroupIdentifier, "some description!");

            transientConfigSet.AddParameterGroup(parameterGroup);

            var applicationGroup = new ApplicationGroup(
                ApplicationGroupName,
                ApplicationGroupName + "App Group Desc!!",
                ApplicationId,
                new List <string>
            {
                parameterGroup.Identifier
            });

            transientConfigSet.AddGroup(applicationGroup);

            var conversion = RationalConversion.CreateSimple1To1Conversion(ConversionFunctionName, "myunit", "%5.2f");

            transientConfigSet.AddConversion(conversion);

            var paramFrequency = new Frequency(2, FrequencyUnit.Hz);

            var paramChannel = new Channel(
                MyParamChannelId,
                "MyParamChannel",
                paramFrequency.ToInterval(),
                DataType.Double64Bit,
                ChannelDataSourceType.Periodic,
                string.Empty,
                true);

            transientConfigSet.AddChannel(paramChannel);

            var myParameter = new Parameter(
                parameterIdentifier,
                ParameterName,
                ParameterName + "Description",
                400, //maximum value
                0,   //minimum value
                1,
                0,
                0,
                0xFFFF,
                0,
                ConversionFunctionName,
                new List <string>
            {
                ParameterGroupIdentifier
            },
                paramChannel.Id,
                ApplicationGroupName);

            transientConfigSet.AddParameter(myParameter);

            transientConfigSet.Commit();

            return(myParameter);
        }
Example #11
0
 public void Update(ApplicationGroup applicationGroup)
 {
     _applicationGroupRepository.Update(applicationGroup);
 }
 public HttpResponseMessage Update(ApplicationGroup appGroup)
 {
     return(_client.PutAsJsonAsync(CurrentLink.UpdateAppGroup, appGroup).Result);
 }
 public HttpResponseMessage Add(ApplicationGroup appGroup)
 {
     return(_client.PostAsJsonAsync(CurrentLink.AddAppGroup, appGroup).Result);
 }
        public static void InitializeIdentityForEF(ModeloContainer db)
        {
            /*Usuario*/
            var          userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var          roleManager = HttpContext.Current.GetOwinContext().Get <ApplicationRoleManager>();
            const string nombre      = "Sebastian";
            const string apellido    = "Zeballos";
            const bool   estado      = true;
            const string name        = "*****@*****.**";
            const string password    = "******";
            const string roleName    = "Admin";

            //Create Role Admin if it does not exist
            var role = roleManager.FindByName(roleName);

            if (role == null)
            {
                role = new ApplicationRole(roleName);
                var roleresult = roleManager.Create(role);
            }

            var user = userManager.FindByName(name);

            if (user == null)
            {
                user = new ApplicationUser {
                    UserName = name, Email = name, Nombre = nombre, Apellido = apellido, Estado = estado, EmailConfirmed = true
                };
                var result = userManager.Create(user, password);
                result = userManager.SetLockoutEnabled(user.Id, false);
            }

            var groupManager = new GrupoManager();
            var newGroup     = new ApplicationGroup("Administradores", "Acceso General al Sistema");

            groupManager.CreateGroup(newGroup);
            groupManager.SetUserGroups(user.Id, new string[] { newGroup.Id });
            groupManager.SetGroupRoles(newGroup.Id, new string[] { role.Name });


            /*Servi*/

            const string nombreserv   = "Sebastian";
            const string apellidoserv = "Zeballos";
            const bool   estadoserv   = true;
            const string nameserv     = "*****@*****.**";
            const string passwordserv = "Mcga@123456";
            const string roleNameserv = "Servis";

            var rol = roleManager.FindByName(roleNameserv);

            if (rol == null)
            {
                rol = new ApplicationRole(roleName);
                var roleresult = roleManager.Create(rol);
            }

            var servi = userManager.FindByName(name);

            if (servi == null)
            {
                servi = new Servis {
                    UserName = nameserv, Email = nameserv, Nombre = nombreserv, Apellido = apellidoserv, Estado = estadoserv, EmailConfirmed = true
                };
                var resultado = userManager.Create(servi, passwordserv);
                resultado = userManager.SetLockoutEnabled(servi.Id, false);
            }

            var groupManagerServi = new GrupoManager();
            var newGroupServi     = new ApplicationGroup("Servis", "Acceso de Servis al Sistema");

            groupManager.CreateGroup(newGroupServi);
            groupManager.SetUserGroups(servi.Id, new string[] { newGroupServi.Id });
            groupManager.SetGroupRoles(newGroupServi.Id, new string[] { rol.Name });


            var groupManagerUser = new GrupoManager();
            var newGroupUser     = new ApplicationGroup("Users", "Acceso de Usuarios al Sistema");

            groupManager.CreateGroup(newGroupUser);
            groupManager.SetUserGroups(user.Id, new string[] { newGroupUser.Id });
            groupManager.SetGroupRoles(newGroupUser.Id, new string[] { rol.Name });

            var PermisosServis = new List <ApplicationRole> {
                new ApplicationRole {
                    Name = "Servis"
                },
            };

            PermisosServis.ForEach(c => db.Roles.Add(c));

            var PermisosUsers = new List <ApplicationRole> {
                new ApplicationRole {
                    Name = "Users"
                },
            };

            PermisosUsers.ForEach(c => db.Roles.Add(c));


            var PermisosUsuario = new List <ApplicationRole> {
                new ApplicationRole {
                    Name = "Agregar_Usuario"
                },
                new ApplicationRole {
                    Name = "Editar_Usuario"
                },
                new ApplicationRole {
                    Name = "Detalle_Usuario"
                },
                new ApplicationRole {
                    Name = "Eliminar_Usuario"
                },
                new ApplicationRole {
                    Name = "AllUsuarios"
                }
            };

            PermisosUsuario.ForEach(c => db.Roles.Add(c));


            var PermisosGrupo = new List <ApplicationRole> {
                new ApplicationRole {
                    Name = "Agregar_Grupo"
                },
                new ApplicationRole {
                    Name = "Editar_Grupo"
                },
                new ApplicationRole {
                    Name = "Detalle_Grupo"
                },
                new ApplicationRole {
                    Name = "Eliminar_Grupo"
                },
                new ApplicationRole {
                    Name = "AllGrupos"
                }
            };

            PermisosGrupo.ForEach(c => db.Roles.Add(c));


            var PermisosAcciones = new List <ApplicationRole> {
                new ApplicationRole {
                    Name = "Agregar_Permiso"
                },
                new ApplicationRole {
                    Name = "Editar_Permiso"
                },
                new ApplicationRole {
                    Name = "Detalle_Permiso"
                },
                new ApplicationRole {
                    Name = "Eliminar_Permiso"
                },
                new ApplicationRole {
                    Name = "AllPermisos"
                }
            };

            PermisosUsuario.ForEach(c => db.Roles.Add(c));

            var grupos = new List <ApplicationGroup> {
                new ApplicationGroup {
                    Name        = "Gestionar Usuarios",
                    Description = "Gestionar Usuarios"
                },
                new ApplicationGroup {
                    Name        = "Gestionar Grupos",
                    Description = "Gestionar Grupos"
                },
                new ApplicationGroup {
                    Name        = "Gestionar Acciones",
                    Description = "Gestionar Acciones"
                },
            };

            grupos.ForEach(c => db.ApplicationGroups.Add(c));

            var zonas = new List <Zonas>
            {
                new Zonas
                {
                    Zona = "Rosario Centro"
                },
                new Zonas
                {
                    Zona = "Rosario Sur"
                },
                new Zonas
                {
                    Zona = "Rosario Norte"
                },
                new Zonas
                {
                    Zona = "Rosario Oeste"
                }
            };

            zonas.ForEach(c => db.Zonas.Add(c));

            var horarios = new List <Horarios>
            {
                new Horarios
                {
                    Horario = "8:00Hs - 12:00Hs"
                },
                new Horarios
                {
                    Horario = "12:00Hs - 16:00Hs"
                },
                new Horarios
                {
                    Horario = "16:00Hs - 19:00Hs"
                }
            };

            horarios.ForEach(c => db.Horarios.Add(c));

            var comision = new List <Comision>
            {
                new Comision
                {
                    ImpComision = 45,
                    FechaAlta   = DateTime.Today,
                    Usuario     = "Sistema"
                }
            };

            comision.ForEach(c => db.Comision.Add(c));

            var profesiones = new List <Profesiones>
            {
                new Profesiones
                {
                    Desc_Profesion = "Electricista"
                },
                new Profesiones
                {
                    Desc_Profesion = "Gasista"
                },
                new Profesiones
                {
                    Desc_Profesion = "Cerrajero"
                },
                new Profesiones
                {
                    Desc_Profesion = "Service Aire Acondicionado"
                },
                new Profesiones
                {
                    Desc_Profesion = "Servicio Domestico"
                }
            };

            profesiones.ForEach(c => db.Profesiones.Add(c));


            var tareas = new List <Tareas>
            {
                new Tareas
                {
                    Desc_Tarea  = "Instalar",
                    Profesiones = profesiones[0]
                },
                new Tareas
                {
                    Desc_Tarea  = "Reparar",
                    Profesiones = profesiones[0]
                },
                new Tareas
                {
                    Desc_Tarea  = "Sustituir",
                    Profesiones = profesiones[0]
                },
                new Tareas
                {
                    Desc_Tarea  = "Cablear",
                    Profesiones = profesiones[0]
                },
                new Tareas
                {
                    Desc_Tarea  = "Otro",
                    Profesiones = profesiones[0]
                },

                /*2*/
                new Tareas
                {
                    Desc_Tarea  = "Revisar perdida de Gas",
                    Profesiones = profesiones[1]
                },
                new Tareas
                {
                    Desc_Tarea  = "Habilitar Instalación",
                    Profesiones = profesiones[1]
                },
                new Tareas
                {
                    Desc_Tarea  = "Realizar Instalación",
                    Profesiones = profesiones[1]
                },
                new Tareas
                {
                    Desc_Tarea  = "Realizar Service",
                    Profesiones = profesiones[1]
                },
                new Tareas
                {
                    Desc_Tarea  = "Otro",
                    Profesiones = profesiones[1]
                },
                /*3*/
                new Tareas
                {
                    Desc_Tarea  = "Abrir Cerradura",
                    Profesiones = profesiones[2]
                },
                new Tareas
                {
                    Desc_Tarea  = "Reparar",
                    Profesiones = profesiones[2]
                },
                new Tareas
                {
                    Desc_Tarea  = "Sustituir",
                    Profesiones = profesiones[2]
                },
                new Tareas
                {
                    Desc_Tarea  = "Otro",
                    Profesiones = profesiones[2]
                },
                /*4*/
                new Tareas
                {
                    Desc_Tarea  = "Instalar",
                    Profesiones = profesiones[3]
                },
                new Tareas
                {
                    Desc_Tarea  = "Reparar",
                    Profesiones = profesiones[3]
                },
                new Tareas
                {
                    Desc_Tarea  = "Sustituir",
                    Profesiones = profesiones[3]
                },
                new Tareas
                {
                    Desc_Tarea  = "Recargar",
                    Profesiones = profesiones[3]
                },
                new Tareas
                {
                    Desc_Tarea  = "Otro",
                    Profesiones = profesiones[3]
                },
                /*5*/

                new Tareas
                {
                    Desc_Tarea  = "Servicio Completo",
                    Profesiones = profesiones[4]
                },
                new Tareas
                {
                    Desc_Tarea  = "Cocina",
                    Profesiones = profesiones[4]
                },
                new Tareas
                {
                    Desc_Tarea  = "Limpieza",
                    Profesiones = profesiones[4]
                },
                new Tareas
                {
                    Desc_Tarea  = "Lavado y Planchado",
                    Profesiones = profesiones[4]
                },
                new Tareas
                {
                    Desc_Tarea  = "Niñera",
                    Profesiones = profesiones[4]
                },
                new Tareas
                {
                    Desc_Tarea  = "Otro",
                    Profesiones = profesiones[4]
                }
            };

            tareas.ForEach(c => db.Tareas.Add(c));

            db.SaveChanges();
        }
        public static void SeedUsers(UserManager <ApplicationUser> userManager)
        {
            if (userManager.FindByNameAsync("*****@*****.**").Result == null)
            {
                Phone phone = new Phone()
                {
                    PhoneNumber = "+380111111111"
                };
                ApplicationUser  user  = new ApplicationUser();
                ApplicationGroup group = new ApplicationGroup()
                {
                    Phone = phone, Name = "TestUserGroup"
                };
                user.UserName         = "******";
                user.Email            = "*****@*****.**";
                user.ApplicationGroup = group;

                IdentityResult result = userManager.CreateAsync(user, "1234ABCD").Result;
                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(user, "User").Wait();
                }
            }


            if (userManager.FindByNameAsync("*****@*****.**").Result == null)
            {
                Phone phone = new Phone()
                {
                    PhoneNumber = "+380777777777"
                };
                ApplicationUser  user  = new ApplicationUser();
                ApplicationGroup group = new ApplicationGroup()
                {
                    Phone = phone, Name = "AdminGroup"
                };
                user.UserName         = "******";
                user.Email            = "*****@*****.**";
                user.ApplicationGroup = group;

                IdentityResult result;
                result = userManager.CreateAsync(user, "1234ABCD").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(user, "Admin").Wait();
                }
            }

            if (userManager.FindByNameAsync("*****@*****.**").Result == null)
            {
                Phone phone = new Phone()
                {
                    PhoneNumber = "+380666666666"
                };
                ApplicationUser  user  = new ApplicationUser();
                ApplicationGroup group = new ApplicationGroup()
                {
                    Phone = phone, Name = "TestGroup"
                };
                user.UserName         = "******";
                user.Email            = "*****@*****.**";
                user.ApplicationGroup = group;

                IdentityResult result;
                result = userManager.CreateAsync(user, "1234ABCD").Result;

                if (result.Succeeded)
                {
                    userManager.AddToRoleAsync(user, "CorporateUser").Wait();
                }
            }
        }
Example #16
0
        public async Task <ApplicationGroup> SaveGroup(JObject group)
        {
            dynamic          groupDto = group;
            ApplicationGroup applicationGroup;
            bool             isNew             = groupDto.IsNew;
            JArray           sremovedListArray = groupDto.RemovedList;
            var    removedList    = sremovedListArray.ToObject <List <int> >();
            JArray addedListArray = groupDto.AddedList;
            var    addedList      = addedListArray.ToObject <List <int> >();

            if (!isNew)
            {
                applicationGroup = new ApplicationGroup()
                {
                    Id = groupDto.Id
                };
                applicationGroup = await _securityContext.Groups.FindAsync(applicationGroup.Id);

                if (applicationGroup == null)
                {
                    throw new KhodkarInvalidException(LanguageManager.ToAsErrorMessage(ExceptionKey.GroupNotFound));
                }
            }
            else
            {
                applicationGroup = new ApplicationGroup();
                _securityContext.Groups.Add(applicationGroup);
            }



            applicationGroup.Name        = groupDto.Name;
            applicationGroup.IsLeaf      = groupDto.IsLeaf;
            applicationGroup.Description = groupDto.Description;
            try
            {
                applicationGroup.Order = groupDto.Order;
            }
            catch (Exception)
            {
                applicationGroup.Order = 0;
            }

            applicationGroup.Status = groupDto.Status;

            try
            {
                int parentId = groupDto.ParentId;
                if (applicationGroup.ParentId != parentId)
                {
                    var parentCode = await _securityContext.Groups.FindAsync(parentId);

                    if (parentCode == null)
                    {
                        throw new KhodkarInvalidException(
                                  LanguageManager.ToAsErrorMessage(ExceptionKey.ParentRecordNotFound));
                    }
                    AuthorizeManager.CheckParentNodeModifyAccessForAddingChildNode(parentCode, parentCode.Id);
                }
                applicationGroup.ParentId = parentId;
            }
            catch (KhodkarInvalidException)
            {
                throw;
            }
            catch (Exception)
            {
                applicationGroup.ParentId = null;
            }

            AuthorizeManager.SetAndCheckModifyAndAccessRole(applicationGroup, groupDto);

            foreach (var item in addedList)
            {
                var role = new ApplicationGroupRole()
                {
                    GroupId = applicationGroup.Id,
                    RoleId  = item
                };
                _securityContext.ApplicationGroupRoles.Add(role);
            }

            if (removedList.Count > 0)
            {
                _securityContext.ApplicationGroupRoles.Where(
                    eg => removedList.Contains(eg.RoleId) && eg.GroupId == applicationGroup.Id).Delete();
            }

            await _securityContext.SaveChangesAsync();


            CacheManager.Remove(CacheManager.GetGroupKey(CacheKey.Aspect.ToString(), applicationGroup.Id));

            return(applicationGroup);
        }
Example #17
0
        public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginViewModel model, string returnUrl = null)
        {
            if (ModelState.IsValid)
            {
                var info = await _signInManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    throw new ApplicationException("Error loading external login information during confirmation.");
                }
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, PhoneNumber = model.Phone
                };

                var phone = _phoneManager.GetPhones().FirstOrDefault(p => p.PhoneNumber == model.Phone);
                ApplicationGroup group = new ApplicationGroup {
                    Name = model.CompanyName
                };
                if (phone != null)
                {
                    group.PhoneId = phone.Id;
                }
                else
                {
                    Phone newPhone = new Phone {
                        PhoneNumber = model.Phone
                    };
                    group.Phone = newPhone;
                }
                user.ApplicationGroup = group;

                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    _logger.LogInfo("User created a new account with password.");
                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                    if (model.CorporateUser)
                    {
                        await _userManager.AddToRoleAsync(user, "CorporateUser");
                    }
                    else
                    {
                        await _userManager.AddToRoleAsync(user, "User");
                    }

                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        _logger.LogInfo($"User created an account using {info.LoginProvider} provider.");
                        return(RedirectToLocal(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewData["ReturnUrl"] = returnUrl;
            return(View(nameof(ExternalLogin), model));
        }
Example #18
0
        public async Task <IActionResult> NewRegister(RegisterViewModel model, int groupId = 0, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    PhoneNumber = model.Phone,
                };

                if (groupId == 0)
                {
                    var phone = _phoneManager.GetPhones().FirstOrDefault(p => p.PhoneNumber == model.Phone);
                    ApplicationGroup group = new ApplicationGroup {
                        Name = model.CompanyName
                    };
                    if (phone != null)
                    {
                        group.PhoneId = phone.Id;
                    }
                    else
                    {
                        Phone newPhone = new Phone {
                            PhoneNumber = model.Phone
                        };
                        group.Phone = newPhone;
                    }
                    user.ApplicationGroup = group;
                }
                else
                {
                    user.ApplicationGroupId = groupId;
                }

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    _logger.LogInfo("User created a new account with password.");
                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    //await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);
                    notificationManager.AddNotificationsToUser(new PersonalNotificationBuilder(user)
                                                               .SetMessage("Confirm email and phone", "Confirm email and phone to recieve notification." +
                                                                           " Email and SMS notifications can be turned on in Profile/Notifications.")
                                                               .SetTime(DateTime.Now)
                                                               .GenerateHref(Url, "Manage", "Index")
                                                               .Build());
                    if (model.CorporateUser)
                    {
                        await _userManager.AddToRoleAsync(user, "CorporateUser");
                    }
                    else
                    {
                        await _userManager.AddToRoleAsync(user, "User");
                    }
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInfo("User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }

            return(View(model));
        }
Example #19
0
 public async Task<IdentityResult> CreateGroupAsync(ApplicationGroup group)
 {
     await _groupStore.CreateAsync(group);
     return IdentityResult.Success;
 }
 public void AddGroup(ApplicationGroup group)
 {
     Service.CreateLink(this, GROUP, group.Key);
 }
 public void AddApplicationGroup(ApplicationGroup row)
 {
     this.Rows.Add(row);
 }
 public void RemoveGroup(ApplicationGroup group)
 {
     Service.RemoveLink(this, GROUP, group.Key);
 }
 public ApplicationGroupChangeEvent(ApplicationGroup row, DataRowAction action)
 {
     this.eventRow    = row;
     this.eventAction = action;
 }
 public void RemoveGroup(ApplicationGroup group)
 {
     throw new NotImplementedException();
 }
 public IdentityResult CreateGroup(ApplicationGroup group)
 {
     _groupStore.Create(group);
     return(IdentityResult.Success);
 }
        /// <summary>
        /// Creates a session and adds data.
        /// </summary>
        /// <returns>Guid of the session</returns>
        public SessionKey CreateSessionAndAddData()
        {
            long       startTime          = ConvertDateTimeToNanoseconds(DateTime.Now);
            long       endTime            = ConvertDateTimeToNanoseconds(DateTime.Now.AddMinutes(2));
            SessionKey sessionKey         = SessionKey.NewKey();
            DateTime   date               = DateTime.Now;
            string     sessionDescription = string.Format("Example::: {0}", date.ToString("dd-MMM-yy hh:mm:ss tt"));
            var        random             = new Random();

            // Create a session first
            var clientSession = this.sessionManager.CreateSession(this.connectionString, sessionKey, sessionDescription, date, "TAG-310");
            var session       = clientSession.Session;

            // Add some session details which allows values as String, Long, Double, Bool, Datetime, Byte[] etc.
            session.Items.Add(new SessionDataItem("Driver Name", "Driver xxxxx"));
            session.Items.Add(new SessionDataItem("Race", "Silverstone GP"));
            session.Items.Add(new SessionDataItem("Date", DateTime.Now.AddDays(7)));
            session.Items.Add(new SessionDataItem("Fuel level in gallons", 56.45));

            // Add conversions - Rational and table
            var config      = session.CreateConfiguration();
            var conversions = new List <ConversionBase>
            {
                new RationalConversion("Rational_conv", "mph", "%5.2f", 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)
            };

            var rawValues        = new double[] { 0, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95 };
            var calibratedValues = new double[] { 50, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145 };

            conversions.Add(new TableConversion("Table_conv", "mph", "%5.2f", rawValues, calibratedValues, false));
            config.AddConversions(conversions);

            // Add Application and Parameter groups
            var parameterGroups = new List <ParameterGroup>
            {
                new ParameterGroup("chassis", "Chassis group"),
                new ParameterGroup("engine", "Engine group"),
                new ParameterGroup("bios", "Bios group")
            };
            var applicationGroup = new ApplicationGroup("SQLRace App Group", "SQLRace App Group", parameterGroups.Select(x => x.Identifier).ToList());

            config.AddGroup(applicationGroup);
            config.AddParameterGroups(parameterGroups);

            // Add Parameters - Periodic, SlowRow and Synchro
            var channel1   = new Channel(1, "lowFrequencyPeriodic1", 100000000, DataType.FloatingPoint32Bit, ChannelDataSourceType.Periodic);
            var channel2   = new Channel(2, "highFrequencyPeriodic", 1000000, DataType.FloatingPoint32Bit, ChannelDataSourceType.Periodic);
            var channel3   = new Channel(3, "lowFrequencyPeriodic2", 50000000, DataType.FloatingPoint32Bit, ChannelDataSourceType.Periodic);
            var channel4   = new Channel(100, "synchroChannel", 0, DataType.Unsigned8Bit, ChannelDataSourceType.Synchro);
            var channel5   = new Channel(1000, "SlowRowDataChannel", 0, DataType.Unsigned8Bit, ChannelDataSourceType.RowData);
            var parameters = new List <ParameterBase>
            {
                new Parameter("lowFrequency_10Hz", "lowFrequency_10Hz", "Low frequency parameter", 200, 0, 200, 0, 0, 0xffffffff, 0, conversions[0].Name, new List <string> {
                    "chassis"
                }, channel1.Id),
                new Parameter("highFrequency_1KHz", "highFrequency_1KHz", "High frequency parameter", 200, 0, 200, 0, 0, 0xffffffff, 0, conversions[0].Name, new List <string> {
                    "chassis"
                }, channel2.Id),
                new Parameter("lowFrequency_20Hz", "lowFrequency_20Hz", "parameter for Table conversion", 200, 0, 200, 0, 0, 0xffffffff, 0, conversions[1].Name, new List <string> {
                    "chassis"
                }, channel3.Id),
                new Parameter("synchroData", "synchroData", "Synchro data parameter", 200, 0, 200, 0, 0, 0xff, 0, conversions[0].Name, new List <string> {
                    "engine"
                }, channel4.Id),
                new Parameter("slowRowData", "slowRowData", "slow Row Data parameter", 200, 0, 200, 0, 0, 0xff, 0, conversions[0].Name, new List <string> {
                    "bios"
                }, channel5.Id)
            };

            config.AddParameters(parameters);
            config.AddChannels(new List <Channel> {
                channel1, channel2, channel3, channel4, channel5
            });

            // Add event definitions
            var eventDefinitions = new List <EventDefinition>
            {
                new EventDefinition(
                    1,
                    "FirstEvent",
                    EventPriorityType.High,
                    new List <string>
                {
                    conversions[0].Name,
                    conversions[0].Name,
                    conversions[0].Name
                },
                    "Group1"),
                new EventDefinition(
                    2,
                    "SecondEvent",
                    EventPriorityType.Low,
                    new List <string>
                {
                    conversions[0].Name,
                    conversions[0].Name,
                    conversions[0].Name
                },
                    "Group1"),
                new EventDefinition(
                    3,
                    "LastEvent",
                    EventPriorityType.Medium,
                    new List <string>
                {
                    conversions[0].Name,
                    conversions[0].Name,
                    conversions[0].Name
                },
                    "Group2")
            };

            config.AddEventDefinitions(eventDefinitions);
            config.Commit();

            // Each samples will be seperated by 250*256 + 100 = (64100 * delta scale) nano secs.
            var synchroBurst    = new byte[] { 11, 100, 250, 22, 100, 250, 33, 100, 250, 44, 100, 250, 55, 100, 250, 66, 100, 250, 77, 100, 250, 88, 100, 250, 99 };
            var doubleData      = new[] { 0, 10.2, 15.45, 20, 25.82, 30, 35, 40, 45.01, 50.99, 55.7, 60.4, 65, 70, 75, 80, 85.67, 90.77, 95 };
            var doubleDataBytes = new byte[doubleData.Length * 4];
            var index           = 0;

            // Convert double array to byte array
            foreach (var byteArray in doubleData.Select(data => BitConverter.GetBytes(Convert.ToSingle(data))))
            {
                Buffer.BlockCopy(byteArray, 0, doubleDataBytes, index, 4);
                index += 4;
            }

            foreach (var parameter in session.Parameters.OfType <Parameter>())
            {
                var  currentTime = startTime;
                var  channel     = parameter.Channels[0];
                byte counter     = 0;

                while (currentTime < endTime)
                {
                    switch (channel.DataSource)
                    {
                    case ChannelDataSourceType.Periodic:
                        session.AddChannelData(channel.Id, currentTime, doubleData.Length, doubleDataBytes);
                        currentTime += channel.Interval * doubleData.Length;
                        break;

                    case ChannelDataSourceType.Synchro:
                        session.AddSynchroChannelData(currentTime, channel.Id, counter++, 2000, synchroBurst);
                        currentTime += 1000000000;
                        break;

                    case ChannelDataSourceType.RowData:
                        session.AddRowData(currentTime, new List <uint> {
                            channel.Id
                        }, new[] { (byte)random.Next(0, 200) });
                        currentTime += 5000000000;
                        break;
                    }
                }
            }

            // Add Laps
            var time      = 20000000000;
            var timeStamp = startTime;

            for (var i = 0; i < 5; i++)
            {
                timeStamp += time + (i * 100000000 * random.Next(1, 500));
                session.LapCollection.Add(new Lap(timeStamp, Convert.ToInt16(i + 1), 0, string.Format("Lap{0}", i + 1), true));
            }

            // Add event instances
            time      = 10000000000;
            timeStamp = startTime;
            for (var i = 0; i < 5; i++)
            {
                timeStamp += time + (i * 100000000 * random.Next(1, 500));
                session.Events.AddEventData(1, "Group1", timeStamp, new List <double> {
                    300, 200, 100
                }, true);
                session.Events.AddEventData(2, "Group1", timeStamp + 100000000, new List <double> {
                    243, 14, 5
                }, true);
                session.Events.AddEventData(3, "Group2", timeStamp + 200000000, new List <double> {
                    111, 0, 3456
                }, true);
            }

            // Add LapItems, Session Constants and LapConstants
            session.LapCollection.LapItems.Add(new LapDataItem(5, "Information", "Pit Stop in next Lap"));
            session.Constants.Add(new Constant("Race Start car weight", 653.92, "Car weight at the start of the race", "kg", "%5.2f"));
            session.LapCollection.Constants.Add(new LapConstant(4, "FuelConsumed", 4.5, "Fuel consumed for this lap", "ltr", "%4.2f"));
            clientSession.Close();


            return(sessionKey);
        }
Example #27
0
        //Create [email protected] with password=Admin@123456 in the Admin role
        public static void InitializeIdentityForEF(ApplicationDbContext db)
        {
            var          userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var          roleManager = HttpContext.Current.GetOwinContext().Get <ApplicationRoleManager>();
            const string name        = "*****@*****.**";
            const string password    = "******";
            const string roleName    = "Admin";

            //Create Role Admin if it does not exist
            var role = roleManager.FindByName(roleName);

            if (role == null)
            {
                role = new ApplicationRole(roleName);
                var roleresult = roleManager.Create(role);
            }

            var user  = userManager.FindByName(name);
            var user3 = userManager.FindByName(name);

            if (user == null)
            {
                user = new ApplicationUser {
                    UserName = name, Email = name, EmailConfirmed = true
                };
                user.FirstName  = "FAdmin";
                user.LastName   = "LAdmin";
                user.Department = "Information Technology";

                var result = userManager.Create(user, password);
                result = userManager.SetLockoutEnabled(user.Id, false);

                //Create other users
                string name2     = "*****@*****.**";
                string password2 = "Test!23";
                var    user2     = new ApplicationUser {
                    UserName = name2, Email = name2, EmailConfirmed = true
                };
                user2.FirstName  = "Robert";
                user2.LastName   = "Swift";
                user2.Department = "Information Technology";
                result           = userManager.Create(user2, password2);
                result           = userManager.SetLockoutEnabled(user2.Id, false);


                string name3     = "*****@*****.**";
                string password3 = "Test!23";
                user3 = new ApplicationUser {
                    UserName = name3, Email = name3, EmailConfirmed = true
                };
                user3.FirstName  = "Abhi";
                user3.LastName   = "Khaitan";
                user3.Department = "Information Technology";

                result = userManager.Create(user3, password3);
                result = userManager.SetLockoutEnabled(user3.Id, false);
            }

            var groupManager = new ApplicationGroupManager();
            var newGroup     = new ApplicationGroup("SuperAdmins", "Full Access to All");

            groupManager.CreateGroup(newGroup);
            groupManager.SetUserGroups(user.Id, new string[] { newGroup.Id });
            groupManager.SetGroupRoles(newGroup.Id, new string[] { role.Name });

            groupManager.SetUserGroups(user3.Id, new string[] { newGroup.Id });
            groupManager.SetGroupRoles(newGroup.Id, new string[] { role.Name });

            foreach (var u in db.Users)
            {
                HseqUser hseqUser = new HseqUser();
                hseqUser.UserID      = u.Id;
                hseqUser.Coordinator = true;
                hseqUser.Approver    = true;
                hseqUser.Assignee    = true;
                hseqUser.Owner       = true;

                db.HseqUsers.Add(hseqUser);
            }

            db.SaveChanges();
        }
Example #28
0
        public async Task <HttpResponseMessage> Update(HttpRequestMessage request, ApplicationGroupViewModel appGroupViewModel)
        {
            if (ModelState.IsValid)
            {
                var newAppGroup = new ApplicationGroup();
                if (appGroupViewModel.Id == 0)
                {
                    newAppGroup.Name        = appGroupViewModel.Name;
                    newAppGroup.Description = appGroupViewModel.Description;
                    try
                    {
                        var appGroup = _appGroupService.Add(newAppGroup);
                        _appGroupService.Save();

                        //save group
                        var listRoleGroup = new List <ApplicationRoleGroup>();
                        foreach (var role in appGroupViewModel.Roles)
                        {
                            listRoleGroup.Add(new ApplicationRoleGroup()
                            {
                                GroupId = appGroup.Id,
                                RoleId  = role.Id
                            });
                        }
                        _appRoleService.AddRolesToGroup(listRoleGroup, appGroup.Id);
                        _appRoleService.Save();

                        return(request.CreateResponse(HttpStatusCode.OK, appGroupViewModel));
                    }
                    catch (Exception ex)
                    {
                        return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
                    }
                }
                else
                {
                    newAppGroup             = _appGroupService.GetDetail(appGroupViewModel.Id);
                    newAppGroup.Name        = appGroupViewModel.Name;
                    newAppGroup.Description = appGroupViewModel.Description;
                    try
                    {
                        _appGroupService.Update(newAppGroup);
                        //_appGroupService.Save();
                        //save group
                        var listRoleGroup = new List <ApplicationRoleGroup>();
                        foreach (var role in appGroupViewModel.Roles)
                        {
                            listRoleGroup.Add(new ApplicationRoleGroup()
                            {
                                GroupId = newAppGroup.Id,
                                RoleId  = role.Id
                            });
                        }
                        _appRoleService.AddRolesToGroup(listRoleGroup, newAppGroup.Id);
                        _appRoleService.Save();
                        // add role to user
                        var listRole        = _appRoleService.GetListRoleByGroupId(newAppGroup.Id);
                        var listUserInGroup = _appGroupService.GetListUserByGroupId(newAppGroup.Id);
                        foreach (var user in listUserInGroup)
                        {
                            var listRoleName = listRole.Select(x => x.Name).ToArray();
                            foreach (var roleName in listRoleName)
                            {
                                await _userManager.RemoveFromRoleAsync(user.Id, roleName);

                                await _userManager.AddToRoleAsync(user.Id, roleName);
                            }
                        }
                        return(request.CreateResponse(HttpStatusCode.OK, appGroupViewModel));
                    }
                    catch (Exception ex)
                    {
                        return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
                    }
                }
            }
            else
            {
                return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }
Example #29
0
 public void Delete(ApplicationGroup entity)
 {
     this.DbEntitySet.Remove(entity);
 }
 public void AddGroup(ApplicationGroup group)
 {
     Service.UpdateListAttribute(Key, MEMBERS, group.Key, DirectoryAttributeOperation.Add);
 }
Example #31
0
 public void Create(ApplicationGroup entity)
 {
     this.DbEntitySet.Add(entity);
 }
Example #32
0
 public async Task<IdentityResult> UpdateGroupAsync(ApplicationGroup group)
 {
     await _groupStore.UpdateAsync(group);
     foreach (var groupUser in group.ApplicationUsers)
     {
         await this.RefreshUserGroupRolesAsync(groupUser.ApplicationUserId);
     }
     return IdentityResult.Success;
 }
 public void RemoveGroup(ApplicationGroup group)
 {
     Service.UpdateListAttribute(Key, MEMBERS, group.Key, DirectoryAttributeOperation.Delete);
 }
        public static Parameter CreateSessionConfigurationForOneParameter(IClientSession clientSession)
        {
            const string ConversionFunctionName   = "CONV_MyParam:MyApp";
            const string ApplicationGroupName     = "MyApp";
            const string ParameterGroupIdentifier = "MyParamGroup";
            const string ParameterName            = "MyParam";
            const uint   MyParamChannelId         = 999998; //must be unique
            const int    ApplicationId            = 998;
            var          parameterIdentifier      = $"{ParameterName}:{ApplicationGroupName}";

            var session = clientSession.Session;

            var config = session.CreateConfiguration();

            var group1 = new ParameterGroup(ParameterGroupIdentifier, "pg1_description");

            var applicationGroup1 = new ApplicationGroup(
                ApplicationGroupName,
                ApplicationGroupName,
                ApplicationId,
                new List <string>
            {
                group1.Identifier
            })
            {
                SupportsRda = false
            };

            config.AddGroup(applicationGroup1);
            config.AddParameterGroup(group1);

            config.AddConversion(
                new RationalConversion(ConversionFunctionName, "kph", "%5.2f", 0.0, 1.0, 0.0, 0.0, 0.0, 1.0));

            var myParamFrequency = new Frequency(2, FrequencyUnit.Hz);

            var myParameterChannel = new Channel(
                MyParamChannelId,
                "MyParamChannel",
                myParamFrequency.ToInterval(),
                DataType.Signed16Bit,
                ChannelDataSourceType.Periodic);

            var myParameter = new Parameter(
                parameterIdentifier,
                ParameterName,
                ParameterName + "Description",
                400,
                0,
                1,
                0,
                0,
                0xFFFF,
                0,
                ConversionFunctionName,
                new List <string>
            {
                ParameterGroupIdentifier
            },
                myParameterChannel.Id,
                ApplicationGroupName);

            config.AddChannel(myParameterChannel);
            config.AddParameter(myParameter);

            config.Commit();

            return(myParameter);
        }
Example #35
0
        public async Task <IdentityResult> CreateGroupAsync(ApplicationGroup group)
        {
            await _groupStore.CreateAsync(group);

            return(IdentityResult.Success);
        }
        public async Task <IEnumerable <string> > GetMembers(TeamProject teamProject, ApplicationGroup applicationGroup)
        {
            if (teamProject == null)
            {
                throw new ArgumentNullException(nameof(teamProject));
            }

            if (applicationGroup == null)
            {
                throw new ArgumentNullException(nameof(applicationGroup));
            }

            var client = this.connection.GetClient <GraphHttpClient>();

            var descriptor = await client.GetDescriptorAsync(teamProject.Id).ConfigureAwait(false);

            var graphGroups = await client.ListGroupsAsync(descriptor.Value).ConfigureAwait(false); // TODO: Overhead

            var group = graphGroups.GraphGroups.FirstOrDefault(g => g.DisplayName.Equals(applicationGroup.Name, StringComparison.OrdinalIgnoreCase));

            if (group == null)
            {
                throw new InvalidOperationException($"Cannot get the members fro application group {applicationGroup.Name}. the application group is not available.");
            }

            var memberships = await client.ListMembershipsAsync(group.Descriptor.ToString(), GraphTraversalDirection.Down).ConfigureAwait(false);

            var lookupKeys = memberships
                             .Select(m => new GraphSubjectLookupKey(m.MemberDescriptor)) // TODO: not sure what to fill in subject type.
                             .ToList();

            var result = await client.LookupSubjectsAsync(new GraphSubjectLookup(lookupKeys)).ConfigureAwait(false);

            return(result.Select(l => l.Value.DisplayName).ToList());
        }
Example #37
0
 public IdentityResult UpdateGroup(ApplicationGroup group)
 {
     _groupStore.Update(group);
     foreach(var groupUser in group.ApplicationUsers)
     {
         this.RefreshUserGroupRoles(groupUser.ApplicationUserId);
     }
     return IdentityResult.Success;
 }
Example #38
0
 public static void UpdateApplicationGroup(this ApplicationGroup appGroup, ApplicationGroupViewModel appGroupVM)
 {
     appGroup.ID          = appGroupVM.ID;
     appGroup.Name        = appGroupVM.Name;
     appGroup.Description = appGroupVM.Description;
 }
Example #39
0
 public IdentityResult CreateGroup(ApplicationGroup group)
 {
     _groupStore.Create(group);
     return IdentityResult.Success;
 }
        public static Dictionary <string, uint> CreateSessionConfigurationForMultipleParameter(
            IClientSession clientSession,
            IEnumerable <string> identifiers)
        {
            var channels = new Dictionary <string, uint>();

            const string ConversionFunctionName   = "CONV_MyParam:MyApp";
            const string ApplicationGroupName     = "MyApp";
            const string ParameterGroupIdentifier = "MyParamGroup";
            const string ParameterName            = "MyParam";

            var session = clientSession.Session;

            var config = session.CreateConfiguration();

            var group1 = new ParameterGroup(ParameterGroupIdentifier, "pg1_description");

            var applicationGroup1 = new ApplicationGroup(
                ApplicationGroupName,
                ApplicationGroupName,
                new List <string>
            {
                group1.Identifier
            })
            {
                SupportsRda = false
            };

            config.AddGroup(applicationGroup1);
            config.AddParameterGroup(group1);

            config.AddConversion(
                new RationalConversion(ConversionFunctionName, "kph", "%5.2f", 0.0, 1.0, 0.0, 0.0, 0.0, 1.0));

            var vCarFrequency = new Frequency(2, FrequencyUnit.Hz);

            uint channelId = 1;

            foreach (var identifier in identifiers)
            {
                channels[identifier] = channelId;

                var channel = new Channel(
                    channelId++,
                    "Channel" + channelId,
                    vCarFrequency.ToInterval(),
                    DataType.Signed16Bit,
                    ChannelDataSourceType.Periodic);

                var parameter = new Parameter(
                    identifier,
                    identifier,
                    identifier,
                    400, //vCar maximum value
                    0,   //vCar minimum value
                    1,
                    0,
                    0,
                    255,
                    0,
                    ConversionFunctionName,
                    new List <string>
                {
                    ParameterGroupIdentifier
                },
                    channel.Id,
                    ApplicationGroupName);

                config.AddChannel(channel);
                config.AddParameter(parameter);
            }

            config.Commit();

            return(channels);
        }