Beispiel #1
0
        private void AddNewOrganization()
        {
            try
            {
                OrganizationDto newOrganization = _controller.GetConfigs <OrganizationCardView, OrganizationCardViewModel>()
                                                  .View(v => v.Icon = _imageManager.GetImage(ImageType.OrganizationImage))
                                                  .AdditionalViewModelParams(SelectedCity)
                                                  .RunDialogWithResult(vm => vm.Organization);

                if (newOrganization != null)
                {
                    newOrganization.City_Id = SelectedCity.Id;

                    var result = _dataProxy.CreateItems(newOrganization);

                    if (result?.Count > 0)
                    {
                        newOrganization      = result.First();
                        newOrganization.City = SelectedCity;
                        SelectedCity.Organizations.Add(newOrganization);
                        Organizations.Add(newOrganization);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageService.ShowError(ex.Message);
            }
        }
        public async Task Init()
        {
            IsFinishedLoading = false;

            var data = await _organizationsService.Get <IEnumerable <OrganizationDTO> >(
                new OrganizationSearchRequest {
                RatingMin              = RatingMin,
                DistanceKilometers     = DistanceKilometers,
                DeliveryTimeMinutesMax = DeliveryTimeMinutesMax,
                AverageProductPriceMax = AveragePriceMax,
                OrganizationType       = new OrganizationTypeDTO()
            });

            Organizations.Clear();
            foreach (var item in data)
            {
                Organizations.Add(new OrganizationModel
                {
                    Organization = item,
                    ProfilePhoto = $"{APIService._apiUrl}/Organization/ProfilePhoto/{item.Id}"
                });
            }

            IsFinishedLoading = true;
        }
Beispiel #3
0
        public static int[] PersonsWithRoleInOrg(RoleType roleType, int p, bool includeChildOrgs)
        {
            Organizations line = new Organizations();

            if (includeChildOrgs)
            {
                line = Organization.FromIdentity(p).GetLine();
            }
            else
            {
                line.Add(Organization.FromIdentity(p));
            }

            BasicPersonRole[] basPersons
                = SwarmDb.GetDatabaseForReading().GetPeopleWithRoleType(roleType, line.Identities, new int[] {});

            List <int> retList = new List <int>();

            foreach (BasicPersonRole b in basPersons)
            {
                retList.Add(b.PersonId);
            }

            return(retList.ToArray());
        }
Beispiel #4
0
        public MainWindowViewModel(IServiceProvider sp)
        {
            this.HumanCenter         = sp.GetService(typeof(IHumanCenter)) as IHumanCenter;
            this.PersonFactory       = sp.GetService(typeof(IPersonFactory)) as IPersonFactory;
            this.OrganizationFactory = sp.GetService(typeof(IOrganizationFactory)) as IOrganizationFactory;
            this.Organizations       = new ObservableCollection <Organization>();
            HumanCenter.GetOrganizations().ForEach(org => Organizations.Add(org as Organization));
            var names = new List <string>();

            foreach (var o in Organizations)
            {
                names.Add(o.Name);
            }
            //this.OrganizationNames = new ObservableCollection<string>(names);
            OrganizationTypes = new ObservableCollection <string>(new List <string>
            {
                "School", "Company"
            });
            PersonTypes = new ObservableCollection <string>(new List <string>
            {
                "Student", "Worker"
            });
            PersonGenders = new ObservableCollection <string>(new List <string>
            {
                "Male", "Female"
            });
        }
 public void Update(Config config)
 {
     Organizations.Clear();
     foreach (var item in config.Organizations)
     {
         Organizations.Add(item);
     }
 }
Beispiel #6
0
        private static void InitOrganizations()
        {
            Organizations.Add(new OrganizationModel
            {
                Id      = 1,
                Name    = "Dom dziecka \"Dobra Chata\"",
                Address = "Kielce, ul. Sandomierska 126",
                Phone   = "41 365 76 53"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 2,
                Name    = "Miejska Biblioteka Publiczna Filia nr 4",
                Address = "Kielce, ul. Górnicza 64",
                Phone   = "41 500 64 66"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 3,
                Name    = "Świetlica Wspierająco-Integrująca w Kielcach",
                Address = "Kielce, ul. Żeromskiego 13a",
                Phone   = "41 230 01 00"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 4,
                Name    = "Miejska Biblioteka Publiczna Filia nr 50",
                Address = "Kielce, ul. Zagórska 60",
                Phone   = "41 215 61 55"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 5,
                Name    = "Schronisko dla zwierząt",
                Address = "Kielce",
                Phone   = "41 215 61 55"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 6,
                Name    = "Szlachetna paczka",
                Address = "Kielce, ul. Zapolskiej 14d",
                Phone   = "517 667 323"
            });

            Organizations.Add(new OrganizationModel
            {
                Id      = 7,
                Name    = "Biblioteka Publiczna Filia nr 13",
                Address = "Kielce, ul. Naruszewicza 25 14d",
                Phone   = "41 589 25 01"
            });
        }
Beispiel #7
0
 private void RepositoryOrganizationChanged(object sender, ItemChangedEventArgs <Organization> e)
 {
     if (e.Action == ItemChangedEventArgs <Organization> .ActionType.Add)
     {
         var organization = new OrganizationViewModel(e.Item);
         Organizations.Add(organization);
         SelectedOrganization = organization;
     }
 }
Beispiel #8
0
        private void LoadPanel(string header)
        {
            switch (header)
            {
            case "news feed":
                if (EventsRequest == null)
                {
                    EventsRequest = new UserReceivedEventsRequest(_githubService.Username);
                }
                break;

            case "owned repos":
                if (OwnedRepositoriesRequest == null)
                {
                    OwnedRepositoriesRequest = new RepositoriesRequest();
                }
                break;

            case "watched reps":
                if (WatchedRepositoriesRequest == null)
                {
                    WatchedRepositoriesRequest = new RepositoriesWatchedRequest(_githubService.Username);
                }
                break;

            case "follower":
                if (FollowersRequest == null)
                {
                    FollowersRequest = new UserFollowersRequest(_githubService.Username);
                }
                break;

            case "following":
                if (FollowingsRequest == null)
                {
                    FollowingsRequest = new UserFollowingRequest(_githubService.Username);
                }
                break;

            case "profile":
                if (User == null)
                {
                    User = _githubService.Load(new UserRequest(_githubService.Username), u =>
                    {
                        User = u;
                        _githubService.Load(new UserOrganizationRequest(_githubService.Username), organizations =>
                        {
                            foreach (var organization in organizations)
                            {
                                Organizations.Add(organization);
                            }
                        });
                    });
                }
                break;
            }
        }
        public ScientistAddsOrganizationViewModel(ScientistModel selectedScientist)
        {
            SelectedScientist = selectedScientist;
            List <Organization> conferences = OrganizationService.GetOrganizations();

            foreach (Organization o in conferences)
            {
                Organizations.Add(new OrganizationModel(o));
            }
        }
Beispiel #10
0
        private void PopulateData()
        {
            Organization objorg = new Organization()
            {
                Name = "artexacta"
            };

            Area area = new Area()
            {
                Name = "marketing"
            };

            objorg.Areas.Add(area.ObjectId, area);
            area.Owner = objorg;
            Areas.Add(area.ObjectId, area);

            area = new Area()
            {
                Name = "development"
            };
            objorg.Areas.Add(area.ObjectId, area);
            area.Owner = objorg;
            Areas.Add(area.ObjectId, area);


            ////Kpi kpi = new Kpi()
            ////{
            ////    Name = "KPI Test Data",
            ////    Progress = 32
            ////};
            ////kpi.Owner = objOrg;
            ////Kpis.Add(kpi.ObjectId, kpi);
            ////objOrg.Kpis.Add(kpi.ObjectId, kpi);
            Project project = new Project()
            {
                Name = "Project 1"
            };

            project.Owner = objorg;
            Projects.Add(project.ObjectId, project);
            objorg.Projects.Add(project.ObjectId, project);

            Activity activity = new Activity()
            {
                Name = "Activity 1"
            };

            activity.Owner = objorg;
            Activities.Add(activity.ObjectId, activity);
            objorg.Activities.Add(activity.ObjectId, activity);

            Organizations.Add(objorg.ObjectId, objorg);
        }
        public Organization CreateOrganization(string name, string description, string webSiteUrl, string ownerId)
        {
            if (Organizations == null)
            {
                Organizations = new List <Organization>();
            }

            Organization newOrganization = Organization.Factory.Create(name, description, webSiteUrl, ownerId, this.Id);

            Organizations.Add(newOrganization);

            return(newOrganization);
        }
Beispiel #12
0
        /// <summary>
        /// public method that add Organization to the current context
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="SetInContext">Add in Current Context</param>
        /// <returns>New Instance of Organization</returns>
        public Organization AddNewOrganization(User user, bool SetInContext)
        {
            #region → Add New organization  .
            Organization organization = new Organization()
            {
                OrganizationID = Guid.NewGuid(),
                Deleted        = false,
                DeletedBy      = user.UserID,
                DeletedOn      = DateTime.Now,
            };
            #endregion

            Organizations.Add(organization);
            return(organization);
        }
        private void RepositoryOrganizationChanged(object sender, ItemChangedEventArgs <Organization> e)
        {
            if (e.Action == ItemChangedEventArgs <Organization> .ActionType.Add)
            {
                var organization = new OrganizationViewModel(e.Item);
                Organizations.Add(organization);
            }

            if (e.Action == ItemChangedEventArgs <Organization> .ActionType.Remove)
            {
                foreach (var organization in Organizations.Where(x => x.Model.Id == e.Item.Id).ToArray())
                {
                    Organizations.Remove(organization);
                }
            }
        }
Beispiel #14
0
        public void Add(long?organizationId = null, long?repositoryId = null, long?userId = null)
        {
            if (organizationId != null)
            {
                Organizations.Add(organizationId.Value);
            }

            if (repositoryId != null)
            {
                Repositories.Add(repositoryId.Value);
            }

            if (userId != null)
            {
                Users.Add(userId.Value);
            }
        }
Beispiel #15
0
 public void LoadView(GithubService githubService)
 {
     if (User == null)
     {
         User = _githubService.Load(new UserRequest(_githubService.Username), u =>
         {
             User = u;
             _githubService.Load(new UserOrganizationRequest(_githubService.Username), organizations =>
             {
                 foreach (var organization in organizations)
                 {
                     Organizations.Add(organization);
                 }
             });
         });
     }
 }
Beispiel #16
0
        public Organizations OrganisationsWithPermission(Permission perm, RoleType[] roles)
        {
            Organizations orgList = GetOrganizations(roles);
            Organizations retList = new Organizations();

            foreach (Organization org in orgList)
            {
                if (HasPermission(perm, org.Identity, -1, Authorization.Flag.Default))
                {
                    if (!retList.Contains(org))
                    {
                        retList.Add(org);
                    }
                }
            }
            return(retList);
        }
Beispiel #17
0
 public string AddDepartmentOrOrganization(string title, string nameTable)
 {
     try
     {
         if (nameTable == "Department")
         {
             Departments.Add(new Department()
             {
                 Title = title
             });
         }
         else if (nameTable == "Organization")
         {
             Organizations.Add(new Organization()
             {
                 Title = title
             });
         }
         SaveChanges();
         return("Запись успешно добавлена");
     }
     catch (Exception ex) { return(ex.Message); }
 }
Beispiel #18
0
        private async void OnDeleteGroup(Organization organization)
        {
            var result = await DialogHelper.ShowDialog(DialogType.Validation, "Are you sure you want to remove contact?");

            if (result)
            {
                DeletedGroups.Add(Student.RelOrganizations.SingleOrDefault(i => i.OrganizationID == organization.OrganizationID));
                Student.RelOrganizations.Remove(Student.RelOrganizations.SingleOrDefault(i => i.OrganizationID == organization.OrganizationID));
                Student.Organizations.Remove(Student.Organizations.SingleOrDefault(i => i.OrganizationID == organization.OrganizationID));
                Organizations.Add(_organizationsRepository.GetOrganization(organization.OrganizationID));
            }

            if (Organizations.Count != 0)
            {
                SelectedGroupId = Organizations.FirstOrDefault().OrganizationID;
            }
            else
            {
                SelectedGroupId = new Guid();
            }

            AddGroupCommand.RaiseCanExecuteChanged();
        }
Beispiel #19
0
 /// <summary>
 /// Joining user to a group or organization. Inherited from <see cref="IDraggableUser"/>
 /// </summary>
 /// <param name="vm"></param>
 public void Join(ViewModelBase vm)
 {
     if (vm is GroupViewModel groupVm)
     {
         if (groupVm.Users.FirstOrDefault(u => u.UserId == UserId) != null)
         {
             return;
         }
         groupVm.Users.Add(this);
         Groups.Add(groupVm);
         RaisePropertyChanged("Groups");
     }
     else if (vm is OrganizationViewModel orgVm)
     {
         if (orgVm.Users.FirstOrDefault(u => u.UserId == UserId) != null)
         {
             return;
         }
         orgVm.Users.Add(this);
         Organizations.Add(orgVm);
         RaisePropertyChanged("Organizations");
     }
 }
Beispiel #20
0
 protected void btnAdd_Click(Object Sender, EventArgs e)
 {
     if (Request.Form[hdnId.UniqueID] == "0")
     {
         oOrganization.Add(txtName.Text, txtCode.Text, Int32.Parse(Request.Form[hdnUser.UniqueID]), (chkDisc.Checked ? 1 : 0), (chkEnabled.Checked == true ? 1 : 0));
     }
     else
     {
         oOrganization.Update(Int32.Parse(Request.Form[hdnId.UniqueID]), txtName.Text, txtCode.Text, Int32.Parse(Request.Form[hdnUser.UniqueID]), (chkDisc.Checked ? 1 : 0), (chkEnabled.Checked == true ? 1 : 0));
     }
     if (Request.Form[hdnOrder.UniqueID] != "")
     {
         string strOrder = Request.Form[hdnOrder.UniqueID];
         int    intCount = 0;
         while (strOrder != "")
         {
             intCount++;
             int intId = Int32.Parse(strOrder.Substring(0, strOrder.IndexOf("&")));
             strOrder = strOrder.Substring(strOrder.IndexOf("&") + 1);
             oOrganization.UpdateOrder(intId, intCount);
         }
     }
     Response.Redirect(Request.Path);
 }
Beispiel #21
0
        public static void CreateUngPiratUptakeMap()
        {
            string svg = string.Empty;
            string legendTemplate = string.Empty;

            using (
                StreamReader reader = new StreamReader("content/se-up-uptake-municipalities-template.svg",
                                                       Encoding.Default))
            {
                svg = reader.ReadToEnd();
            }

            using (
                StreamReader reader = new StreamReader("content/se-up-uptakemap-legend-template.txt", Encoding.Default))
            {
                legendTemplate = reader.ReadToEnd();
            }

            Organizations effectiveOrgs = new Organizations();
            Organizations possibleOrgs = Organization.FromIdentity(2).GetTree();

            foreach (Organization org in possibleOrgs)
            {
                if (org.AcceptsMembers && org.AutoAssignNewMembers)
                {
                    effectiveOrgs.Add(org);
                }
            }

            string legend = string.Empty;

            effectiveOrgs.Sort();

            Dictionary<int, string> colorLookup = new Dictionary<int, string>();
            int position = 0;
            float curLight = .35f;
            float curSaturation = 1f;

            foreach (Organization org in effectiveOrgs)
            {
                curLight += .25f;
                if (curLight > .85f)
                {
                    curLight = .35f;
                }
                else if (curLight > .8f)
                {
                    curLight = .75f;
                }

                curSaturation = 1.45f - curSaturation;


                Color color = ColorFromAhsb(128, (float) position*360/(float) effectiveOrgs.Count, curSaturation,
                                            curLight);

                if (org.CatchAll)
                {
                    color = Color.FromArgb(240, 240, 240);
                }

                string colorString = String.Format("#{0:x2}{1:x2}{2:x2}", color.R, color.G, color.B);
                colorLookup[org.Identity] = colorString;

                string orgLegend = legendTemplate.
                    Replace("%%NAME%%", Encoding.Default.GetString(Encoding.UTF8.GetBytes(org.NameShort))).
                    Replace("%%YPOS%%", (position*17).ToString()).
                    Replace("%%COLOR%%", colorString).
                    Replace("%%GROUPID%%", "org" + org.Identity.ToString());

                legend += orgLegend;

                position++;
            }

            Mappery mappery = new Mappery();
            mappery.OrgColorLookup = colorLookup; // Ugly way to transfer data to delegate

            svg = svg.Replace("<!--%%LEGEND%%-->", legend);

            Regex regex =
                new Regex("(?<start>\\<path.+?fill:)(?<color>.+?)(?<middle>;.+?id=\\\")(?<id>.+?)(?<end>\\\".+?/\\>)",
                          RegexOptions.Singleline);

            MatchEvaluator matchEvaluator = new MatchEvaluator(mappery.UPUptakeLookupReplacer);

            Persistence.Key["OrgUptakeMap-2"] = regex.Replace(svg, matchEvaluator);
        }
Beispiel #22
0
 public void AddOrganization(string organizationName)
 {
     Organizations.Add(organizationName, new Dictionary <string, Dictionary <string, Dictionary <string, Dictionary <string, string> > > >());
     LatestOrganizationName = organizationName;
 }
Beispiel #23
0
 public void IncludeInOrganization(Organization organization)
 {
     Organizations.Add(organization);
 }
Beispiel #24
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int    currentUserId = Convert.ToInt32(HttpContext.Current.User.Identity.Name);
        Person currentUser   = Person.FromIdentity(currentUserId);

        this.ListOpenExpenses.PersonId = currentUserId;

        // Get currently expensed amount

        ExpenseClaims expenseClaims = ExpenseClaims.FromClaimingPerson(currentUser);

        decimal totalOpen = 0.0m;

        foreach (ExpenseClaim expense in expenseClaims)
        {
            if (expense.Open)
            {
                totalOpen += expense.Amount;
            }
        }

        if (totalOpen > 0)
        {
            this.LabelOpenExpensesParagraph.Text = String.Format(LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.Open.IntroParagraph",
                                                                                                    "This is a list of your filed but still open expenses, currently totalling {0:N2}. They will be removed from this list when the treasurer has received your receipts and reimbursed the amount."),
                                                                 totalOpen);
        }
        else
        {
            this.LabelOpenExpensesParagraph.Text = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.Open.IntroParagraph",
                                                                                      "When you have open expenses, this section lists them.");
        }

        if (!Page.IsPostBack)
        {
            // Init

            this.TextExpenseBy.Text = currentUser.Name;

            // Populate list of organizations (initial population)

            Organizations organizationList = currentUser.GetAuthority().GetOrganizations(RoleTypes.AllRoleTypes);
            organizationList = organizationList.RemoveRedundant();
            organizationList.Add(Organization.Sandbox);

            foreach (Organization organization in organizationList)
            {
                Organizations organizationTree = organization.GetTree();

                foreach (Organization organizationOption in organizationTree)
                {
                    DropOrganizations.Items.Add(new ListItem(organizationOption.NameShort, organizationOption.OrganizationId.ToString()));
                }
            }

            PopulateGeographies();

            // Localize

            this.LabelNewExpenseParagraph.Text = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.IntroParagraph",
                                                                                    "To file an expense:<ul><li>Take the receipt and affix it to an A4 size paper. </li><li>Select the organization and geography that should be charged</li><li>Write the receipt date and a good short description</li><li>Press Claim Expense. </li><li>You will be asked to mark the receipt with a number and send it to the treasurer.<br><b>Note the number and the address, they will only be shown at this time!</B> </li></ul>Don't forget to specify your bank account details (in your member profile).");

            this.LabelExpenseBy.Text    = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.ExpensingPersonName", "Expensed By") + "&nbsp;&nbsp;";
            this.LabelOrganization.Text = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.Organization", "Organization") + "&nbsp;&nbsp;";
            this.LabelGeography.Text    = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.Geography", "Geography") + "&nbsp;&nbsp;";
            this.LabelDate.Text         = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.Date", "Expense Date") + "&nbsp;&nbsp;";
            this.LabelDescription.Text  = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.Description", "Description") + "&nbsp;&nbsp;";
            this.LabelAmount.Text       = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.Amount", "Amount (incl VAT)") + "&nbsp;&nbsp;";

            this.ButtonClaimExpense.Text = LocalizationManager.GetLocalString("Interface.Pages.ActivePirate.Expenses.New.ButtonClaim", "Claim Expense");

            // Set focus

            this.TextDate.Focus();
        }
    }
Beispiel #25
0
        public ScientistModel(Scientist scientist, bool downloadEntityDates = true)
        {
            Scientist = scientist;

            if (downloadEntityDates)
            {
                List <Conference> conferences = ScientistService.GetConferences(Scientist);
                foreach (Conference c in conferences)
                {
                    Conferences.Add(new ConferenceModel(c, false));
                }

                foreach (Report r in Scientist.Reports)
                {
                    Reports.Add(new ReportModel(r));
                }

                List <Organization> organizations = ScientistService.GetOrganizations(Scientist);
                foreach (Organization o in organizations)
                {
                    Organizations.Add(new OrganizationModel(o, false));
                }
            }

            Conferences.CollectionChanged += (o, e) =>
            {
                if (e.Action.ToString().Equals("Add"))
                {
                    ConferenceModel cm = null;
                    foreach (ConferenceModel cmo in e.NewItems)
                    {
                        cm = cmo;
                    }
                    ScientistService.AddConference(Scientist, cm.Conference);
                }
                else if (e.Action.ToString().Equals("Remove"))
                {
                    ConferenceModel cm = null;
                    foreach (ConferenceModel cmo in e.OldItems)
                    {
                        cm = cmo;
                    }
                    ScientistService.RemoveConference(Scientist, cm.Conference);
                }
                OnPropertyChanged("Conferences");
            };

            Reports.CollectionChanged += (o, e) =>
            {
                if (e.Action.ToString().Equals("Add"))
                {
                    ReportModel rm = null;
                    foreach (ReportModel rem in e.NewItems)
                    {
                        rm = rem;
                    }
                    ScientistService.AddReport(Scientist, rm.Report);
                }
                else if (e.Action.ToString().Equals("Remove"))
                {
                    ReportModel rm = null;
                    foreach (ReportModel rem in e.OldItems)
                    {
                        rm = rem;
                    }
                    ScientistService.RemoveReport(Scientist, rm.Report);
                }
                OnPropertyChanged("Reports");
                OnPropertyChanged("ReportsCount");
            };

            Organizations.CollectionChanged += (o, e) =>
            {
                if (e.Action.ToString().Equals("Add"))
                {
                    OrganizationModel om = null;
                    foreach (OrganizationModel orm in e.NewItems)
                    {
                        om = orm;
                    }
                    ScientistService.AddOrganization(Scientist, om.Organization);
                }
                else if (e.Action.ToString().Equals("Remove"))
                {
                    OrganizationModel om = null;
                    foreach (OrganizationModel orm in e.OldItems)
                    {
                        om = orm;
                    }
                    ScientistService.RemoveOrganization(Scientist, om.Organization);
                }
                OnPropertyChanged("Organizations");
            };
        }
        public IJsonResponse <unit> Send([JsonRequestBody] JS.SpecialistRegistrationRequest request)
        {
            var res = from req in request.MaybeDefined()

                      where Maybe.Holds(!req.firstName.NullOrEmpty()).OrFail("Имя не указано.")
                      where Maybe.Holds(!req.lastName.NullOrEmpty()).OrFail("Отчество не указано.")
                      where Maybe.Holds(!req.city.NullOrEmpty()).OrFail("Город не указан.")
                      where Maybe.Holds(!req.resume.NullOrEmpty()).OrFail("Краткое резюме не заполнено.")
                      where Maybe.Holds(!req.regions.NullOrEmpty()).OrFail("Укажите хотя бы один регион.")

                      let professionIDs = req.professions.EmptyIfNull()
                                          let specializationIDs = req.specializations.EmptyIfNull()

                                                                  from created in Specialists.Add(new Specialist {
                Approved       = false,
                FirstName      = req.firstName,
                LastName       = req.lastName,
                PatronymicName = req.patronymicName,
                Resume         = req.resume,
                ContactEmail   = req.contactEmail,
                PublicEmail    = req.publicEmail,
                ContactPhone   = req.publicPhone,                                                       // We don't ask for contact phone right now
                PublicPhone    = req.publicPhone,
                Url            = req.url,

                City         = req.city,
                Regions      = Regions.All.Where(r => req.regions.Contains(r.ID)).ToList(),
                Organization = req.organization.NullOrEmpty() ? null :
                               Organizations.All.FirstOrDefault(x => x.Name == req.organization) ?? Organizations.Add(new Organization {
                    Name = req.organization
                }),

                Professions           = Professions.All.Where(p => professionIDs.Contains(p.Id)).ToList(),
                ProfessionDescription = req.professionDescription,

                Specializations           = Specializations.All.Where(s => specializationIDs.Contains(s.Id)).ToList(),
                SpecializationDescription = req.specializationDescription,

                Experience            = ExperienceBrackets.Find(req.experience),
                ExperienceDescription = req.experienceDescription,
                FormalEducation       = req.formalEducation,
                MusicTherapyEducation = req.musicTherapyEducation,

                Photo = Files.Find(req.photo)
            })

                                                                  where Maybe.Holds(created.Regions.EmptyIfNull().Any()).OrFail("Регион не указан.")
                                                                  where Maybe.Holds(!created.Professions.NullOrEmpty()).OrFail("Профессия не указана.")
                                                                  where Maybe.Holds(!created.Specializations.NullOrEmpty()).OrFail("Специализация не указана.")

                                                                  from _ in Maybe.Do(UnitOfWork.Commit)
                                                                  select unit.Default;

            return(res.LogErrors(Log.Error).AsJsonResponse());
        }
Beispiel #27
0
        internal static void ProcessAddedMember (BasicPWEvent newPwEvent)
        {
            // This function handles the case when a new member has been added. Several things are hardcoded
            // for UP at this point.

            Person victim = Person.FromIdentity(newPwEvent.AffectedPersonId);
            Person perpetrator = Person.FromIdentity(newPwEvent.ActingPersonId);
            Organizations orgs = new Organizations();
            Geography geography = Geography.FromIdentity(newPwEvent.GeographyId);
            string referrerString = string.Empty;

            if (newPwEvent.ParameterText.Contains(","))
            {
                string[] eventParts = newPwEvent.ParameterText.Split(',');

                string[] orgStrings = eventParts[0].Split(' ');

                foreach (string orgString in orgStrings)
                {
                    int orgId = 0;
                    if (int.TryParse(orgString, out orgId))
                    {
                        orgs.Add(Organization.FromIdentity(orgId));
                    }
                }

                if (eventParts.Length > 2)
                {
                    referrerString = eventParts[2];
                }
            }
            else
            {
                orgs.Add(Organization.FromIdentity(newPwEvent.OrganizationId));
            }

            People concernedPeople = new People();

            bool showName = true;

            foreach (Organization org in orgs)
            {
                concernedPeople =
                    concernedPeople.LogicalOr(
                        People.FromIdentities(Roles.GetAllUpwardRoles(org.Identity, newPwEvent.GeographyId)));

                //Only show name if all orgs allow it
                if (org.ShowNamesInNotificationsInh == false)
                    showName = false;
            }

            //Filter to only get the interested people in this event
            concernedPeople = ApplySubscription(concernedPeople, NewsletterFeed.TypeID.OfficerNewMembers);

            string body = "A new member has appeared within your area of authority.\r\n\r\n";

            if (showName)
            {
                body += "Person:       " + victim.Name + "\r\n";
            }

            foreach (Organization org in orgs)
            {
                body += "Organization: " + org.Name + "\r\n";
            }

            body +=
                "Geography:    " + geography.Name + "\r\n\r\n" +
                "Event source: " + newPwEvent.EventSource.ToString() + "\r\n";

            if (newPwEvent.EventSource == EventSource.SignupPage && referrerString.Length > 0)
            {
                body += "Referrer:     " + referrerString + "\r\n";
            }

            body += "\r\n";

            if (newPwEvent.EventSource == EventSource.PirateWeb)
            {
                body += "This member was added manually";
                body += " by " + perpetrator.Name + ".\r\n\r\n";
            }

            // Send welcoming mails

            string mailsSent = MailResolver.CreateWelcomeMail(victim, Organization.FromIdentity(newPwEvent.OrganizationId));
            // HACK - should be for all orgs

            body += "Welcoming automails sent:\r\n" + mailsSent +
                    "\r\nTo add an automatic welcome mail for your organization and geography, " +
                    "go to PirateWeb, Communications, Triggered Automails, Automail type \"Welcome\".\r\n\r\n";

            // Add some hardcoded things for UP

            /*
            if (organization.Inherits(2))
            {
                int membersTotal = Organization.FromIdentity(2).GetTree().GetMemberCount();
                int membersHere = organization.GetMemberCount();

                body += "Member count for Ung Pirat SE: " + membersTotal.ToString("#,##0") + "\r\n" +
                    "Member count for " + organization.Name + ": " + membersHere.ToString("#,##0") + "\r\n";
            }*/

            string orgSubjectLine = string.Empty;

            foreach (Organization org in orgs)
            {
                orgSubjectLine += ", " + org.NameShort;
            }

            orgSubjectLine = orgSubjectLine.Substring(2);

            new MailTransmitter(Strings.MailSenderName, Strings.MailSenderAddress,
                                                       "New Member: " + (showName ? "[" + victim.Name + "] - " : "") + "[" + orgSubjectLine + "], [" +
                                                       geography.Name + "]",
                                                       body, concernedPeople, true).Send();
        }
Beispiel #28
0
        public static int[] PersonsWithRoleInOrg (RoleType roleType, int p, bool includeChildOrgs)
        {
            Organizations line = new Organizations();
            if (includeChildOrgs)
                line = Organization.FromIdentity(p).GetLine();
            else
                line.Add(Organization.FromIdentity(p));

            BasicPersonRole[] basPersons
                = SwarmDb.GetDatabaseForReading().GetPeopleWithRoleType(roleType, line.Identities, new int[] { });

            List<int> retList = new List<int>();

            foreach (BasicPersonRole b in basPersons)
                retList.Add(b.PersonId);

            return retList.ToArray();
        }
Beispiel #29
0
        internal static void ProcessExtendedMembership (BasicPWEvent newPwEvent)
        {
            // This function handles the case when a membership has been extended for a year.


            BasicPerson victim = Person.FromIdentity(newPwEvent.AffectedPersonId);
            BasicPerson perpetrator = Person.FromIdentity(newPwEvent.ActingPersonId);
            Organization organization = Organization.FromIdentity(newPwEvent.OrganizationId);
            Geography node = Geography.FromIdentity(newPwEvent.GeographyId);

            int[] concernedPeopleId = Roles.GetAllUpwardRoles(newPwEvent.OrganizationId, newPwEvent.GeographyId);

            Organizations orgs = Organizations.FromSingle(organization);

            bool showName = true;
            if (organization.ShowNamesInNotificationsInh == false)
                showName = false;

            if (newPwEvent.ParameterText.Contains(" "))
            {
                // 2nd-gen: several orgs can be passed

                orgs = new Organizations();

                string[] orgStrings = newPwEvent.ParameterText.Split(' ');
                foreach (string orgString in orgStrings)
                {
                    if ((!orgString.Contains(".")) && (!orgString.Contains("/"))) // IP address or SMS
                    {
                        if (orgString.Trim().Length > 0)
                        {
                            orgs.Add(Organization.FromIdentity(Int32.Parse(orgString)));
                        }
                    }
                }
            }

            string orgNames = string.Empty;

            string body =
                "A membership was extended within your area of authority.\r\n\r\n" +
                (showName ? "Person:       " + victim.Name + "\r\n" : "");

            foreach (Organization org in orgs)
            {
                body +=
                    "Organization: " + org.Name + "\r\n";

                orgNames += ", " + org.NameShort;
            }

            orgNames = orgNames.Substring(2);


            body +=
                "Geography:    " + node.Name + "\r\n\r\n" +
                "Event source: " + newPwEvent.EventSource.ToString() + "\r\n";

            People concernedPeople = People.FromIdentities(concernedPeopleId);

            concernedPeople = ApplySubscription(concernedPeople, NewsletterFeed.TypeID.OfficerNewMembers);

            new MailTransmitter(Strings.MailSenderName, Strings.MailSenderAddress,
                                                       "Extended Membership: " + (showName ? "[" + victim.Name + "] - " : "") + "[" + orgNames +
                                                       "], [" + node.Name + "]",
                                                       body, concernedPeople, true).Send();
        }
Beispiel #30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.pagePermissionDefault = new PermissionSet(Permission.CanSeePeople);

        // Get requested person

        Person displayedPerson = Person.FromIdentity(Convert.ToInt32("" + Request["id"]));

        // Authorize



        bool allowed = _authority.CanSeePerson(displayedPerson) ||
                       (_authority.HasRoleAtOrganization(Organization.PPSE, RoleType.OrganizationMemberService, Authorization.Flag.AnyGeographyExactOrganization));

        // If they got this far the have been able to see the person.

        if (!allowed)
        {
            ((MasterV4Base)Master).CurrentPageProhibited = true;
        }

        // Add very simple confirmation to the AddRole button
        string confirmText = LocalizationManager.GetLocalString("Interface.Pages.Member.RolesResponsibilities.ConfirmAddRole",
                                                                "Are you sure you've chosen the correct role for this user?");

        this.ButtonAddRoleLocal.OnClientClick = "return confirm('" + confirmText.Replace("'", "\\'") + "');";
        this.ButtonAddOrgRole.OnClientClick   = "return confirm('" + confirmText.Replace("'", "\\'") + "');";

        if (!_authority.HasAnyPermission(Permission.CanEditOrganisationalRoles))
        {
            this.ButtonAddOrgRole.Enabled = false;
        }

        if (!_authority.HasAnyPermission(Permission.CanEditLocalRoles))
        {
            this.ButtonAddRoleLocal.Enabled = false;
        }

        // If not in viewstate, initialize page

        if (!this.IsPostBack)
        {
            // Fix links

            // Localize

            this.labelCurrentMember.Text = displayedPerson.Name + " (#" + displayedPerson.Identity.ToString() + ")";

            // Populate list of organizations (initial population)

            Organizations organizationList = _authority.GetOrganizations(RoleTypes.AllRoleTypes);
            organizationList = organizationList.RemoveRedundant();
            organizationList.Add(Organization.Sandbox);

            Memberships displayedMemberOf = displayedPerson.GetMemberships();
            if (displayedMemberOf.Count < 1)
            {
                this.labelCurrentMember.Text += " NOTE! THIS PERSON IS NOT A MEMBER AND CAN NOT HAVE ROLES.";
            }
            else
            {
                foreach (Organization organization in organizationList)
                {
                    Organizations organizationTree = organization.GetTree();

                    foreach (Organization organizationOption in organizationTree)
                    {
                        bool canhave = CheckIsMemberOf(displayedMemberOf, organizationOption);

                        if (canhave)
                        {
                            if (_authority.HasPermission(Permission.CanEditLocalRoles, organizationOption.OrganizationId, -1, Authorization.Flag.AnyGeography))
                            {
                                DropOrganizationsLocal.Items.Add(new ListItem(organizationOption.NameShort,
                                                                              organizationOption.OrganizationId.ToString()));
                            }
                            if (_authority.HasPermission(Permission.CanEditOrganisationalRoles, organizationOption.OrganizationId, -1, Authorization.Flag.Default))
                            {
                                DropOrganizationsOrg.Items.Add(new ListItem(organizationOption.NameShort,
                                                                            organizationOption.OrganizationId.ToString()));
                            }
                        }
                    }
                }
            }
            if (DropOrganizationsOrg.Items.Count == 0)
            {
                AddOrgRolePanel.Visible = false;
            }
            else
            {
                AddOrgRolePanel.Visible = true;
            }


            // Populate nodes

            PopulateGeographies();


            // Populate roles


            this.DropRolesLocal.Items.Add(new ListItem("Lead (primary PoC)", RoleType.LocalLead.ToString()));
            this.DropRolesLocal.Items.Add(new ListItem("Second-in-Command", "LocalDeputy"));
            this.DropRolesLocal.Items.Add(new ListItem("Active (visible)", "LocalActive"));
            this.DropRolesLocal.Items.Add(new ListItem("Admin (invisible)", "LocalAdmin"));

            foreach (RoleType r in RoleTypes.AllOrganizationalRoleTypes)
            {
                DropRolesOrg.Items.Add(new ListItem(r.ToString(), r.ToString()));
            }
        }

        PersonDetailsPagesMenu.CurrentPage = 2;
    }
Beispiel #31
0
 public Organizations OrganisationsWithPermission (Permission perm, RoleType[] roles)
 {
     Organizations orgList = GetOrganizations(roles);
     Organizations retList = new Organizations();
     foreach (Organization org in orgList)
     {
         if (HasPermission(perm, org.Identity, -1, Authorization.Flag.Default))
             if (!retList.Contains(org))
                 retList.Add(org);
     }
     return retList;
 }
Beispiel #32
0
        /// <summary>
        /// Initialization users, groups and organizations collections. Initialization links between these entities
        /// </summary>
        private void Fill()
        {
            Users.Clear();
            FilteredUsers.Clear();
            var users = _userService.GetAllSorted(false)?.ToList();

            if (users == null || !users.Any())
            {
                return;
            }
            users.Sort((u1, u2) => u1.UserName.CompareTo(u2.UserName));
            users.ForEach(u => Users.Add(new UserViewModel(u)));
            FilteredUsers  = new ObservableCollection <UserViewModel>(Users);
            FilteredUsers2 = new ObservableCollection <UserViewModel>(Users);

            Groups.Clear();
            var groups = _groupService.GetAllSortedByName()?.ToList();

            if (groups == null || !groups.Any())
            {
                return;
            }
            groups.ForEach(g => Groups.Add(new GroupViewModel(g)));
            foreach (var u in Users)
            {
                var gs = _groupService.GetAllByUserId(u.UserId)?.ToList();
                if (gs == null || !gs.Any())
                {
                    continue;
                }
                gs.ForEach(g =>
                {
                    var groupViewModel = Groups.FirstOrDefault(gVm => gVm.GroupId == g.GroupId);
                    if (groupViewModel == null)
                    {
                        return;
                    }
                    u.Groups.Add(groupViewModel);
                    groupViewModel.Users.Add(u);
                });
            }

            Organizations.Clear();
            var organizations = _organizationService.GetAll()?.ToList();

            if (organizations == null || !organizations.Any())
            {
                return;
            }
            organizations.ForEach(o => Organizations.Add(new OrganizationViewModel(o)));
            foreach (var u in Users)
            {
                var orgs = _organizationService.GetByUserId(u.UserId)?.ToList();
                if (orgs == null || !orgs.Any())
                {
                    continue;
                }
                orgs.ForEach(o =>
                {
                    var orgViewModel = Organizations.FirstOrDefault(oVm => oVm.OrganizationId == o.Id);
                    if (orgViewModel == null)
                    {
                        return;
                    }
                    u.Organizations.Add(orgViewModel);
                    orgViewModel.Users.Add(u);
                });
            }
        }
Beispiel #33
0
        internal static void ProcessLostMember (BasicPWEvent newPwEvent)
        {
            // This function handles the case when a member was purged from the database. Several things are hardcoded
            // for UP at this point.

            Person victim = Person.FromIdentity(newPwEvent.AffectedPersonId);

            Organizations orgs = new Organizations();
            Geography geography = Geography.FromIdentity(newPwEvent.GeographyId);

            string[] orgStrings = newPwEvent.ParameterText.Split(' ');

            foreach (string orgString in orgStrings)
            {
                int orgId = Int32.Parse(orgString);
                orgs.Add(Organization.FromIdentity(orgId));
            }

            People concernedPeople = new People();

            bool showName = true;
            foreach (Organization org in orgs)
            {
                concernedPeople =
                    concernedPeople.LogicalOr(
                        People.FromIdentities(Roles.GetAllUpwardRoles(org.Identity, newPwEvent.GeographyId)));
                //Only show name if all orgs allow it
                if (org.ShowNamesInNotificationsInh == false)
                    showName = false;
            }

            concernedPeople = ApplySubscription(concernedPeople, NewsletterFeed.TypeID.OfficerNewMembers);

            string body = "A member was lost within your area of authority.\r\n\r\n";
            if (showName)
            {
                body += "Person:       " + victim.Name + "\r\n";
            }

            foreach (Organization org in orgs)
            {
                body += "Organization: " + org.Name + "\r\n";
            }

            body +=
                "Geography:    " + geography.Name + "\r\n\r\n" +
                "Event source: " + newPwEvent.EventSource.ToString() + "\r\n\r\n";

            string orgSubjectLine = string.Empty;

            foreach (Organization org in orgs)
            {
                orgSubjectLine += ", " + org.NameShort;
            }

            orgSubjectLine = orgSubjectLine.Substring(2);

            new MailTransmitter(Strings.MailSenderName, Strings.MailSenderAddress,
                                                       "Member Lost: " + (showName ? "[" + victim.Name + "] - " : "") + "[" + orgSubjectLine +
                                                       "], [" + geography.Name + "]",
                                                       body, concernedPeople, true).Send();
        }
Beispiel #34
0
        public void TryAdd(FilterItemType type, object value)
        {
            if (value == null)
            {
                return;
            }

            switch (type)
            {
            case FilterItemType.Category:
                if (!Categories.Contains(value.ToString()))
                {
                    Categories.Add(value.ToString());
                }
                break;

            case FilterItemType.Level:
                if (!Levels.Contains(value.ToString()))
                {
                    Levels.Add(value.ToString());
                }
                break;

            case FilterItemType.Operation:
                if (!Operations.Contains(value.ToString()))
                {
                    Operations.Add(value.ToString());
                }
                break;

            case FilterItemType.Organization:
                if (!Organizations.Contains(value.ToString()))
                {
                    Organizations.Add(value.ToString());
                }
                break;

            case FilterItemType.Process:
                if (!Processes.Contains(value.ToString()))
                {
                    Processes.Add(value.ToString());
                }
                break;

            case FilterItemType.ReqId:
                if (!RequestIds.Contains(value.ToString()))
                {
                    RequestIds.Add(value.ToString());
                }
                break;

            case FilterItemType.Thread:
                if (!Threads.Contains(value.ToString()))
                {
                    Threads.Add(value.ToString());
                }
                break;

            default:
                if (Users.All(u => u.Id != ((UserInfo)value).Id))
                {
                    Users.Add((UserInfo)value);
                }
                break;
            }
        }
Beispiel #35
0
        public static void CreateUngPiratUptakeMap()
        {
            string svg            = string.Empty;
            string legendTemplate = string.Empty;

            using (
                StreamReader reader = new StreamReader("content/se-up-uptake-municipalities-template.svg",
                                                       Encoding.Default))
            {
                svg = reader.ReadToEnd();
            }

            using (
                StreamReader reader = new StreamReader("content/se-up-uptakemap-legend-template.txt", Encoding.Default))
            {
                legendTemplate = reader.ReadToEnd();
            }

            Organizations effectiveOrgs = new Organizations();
            Organizations possibleOrgs  = Organization.FromIdentity(2).GetTree();

            foreach (Organization org in possibleOrgs)
            {
                if (org.AcceptsMembers && org.AutoAssignNewMembers)
                {
                    effectiveOrgs.Add(org);
                }
            }

            string legend = string.Empty;

            effectiveOrgs.Sort();

            Dictionary <int, string> colorLookup = new Dictionary <int, string>();
            int   position      = 0;
            float curLight      = .35f;
            float curSaturation = 1f;

            foreach (Organization org in effectiveOrgs)
            {
                curLight += .25f;
                if (curLight > .85f)
                {
                    curLight = .35f;
                }
                else if (curLight > .8f)
                {
                    curLight = .75f;
                }

                curSaturation = 1.45f - curSaturation;


                Color color = ColorFromAhsb(128, (float)position * 360 / (float)effectiveOrgs.Count, curSaturation,
                                            curLight);

                if (org.CatchAll)
                {
                    color = Color.FromArgb(240, 240, 240);
                }

                string colorString = String.Format("#{0:x2}{1:x2}{2:x2}", color.R, color.G, color.B);
                colorLookup[org.Identity] = colorString;

                string orgLegend = legendTemplate.
                                   Replace("%%NAME%%", Encoding.Default.GetString(Encoding.UTF8.GetBytes(org.NameShort))).
                                   Replace("%%YPOS%%", (position * 17).ToString()).
                                   Replace("%%COLOR%%", colorString).
                                   Replace("%%GROUPID%%", "org" + org.Identity.ToString());

                legend += orgLegend;

                position++;
            }

            Mappery mappery = new Mappery();

            mappery.OrgColorLookup = colorLookup; // Ugly way to transfer data to delegate

            svg = svg.Replace("<!--%%LEGEND%%-->", legend);

            Regex regex =
                new Regex("(?<start>\\<path.+?fill:)(?<color>.+?)(?<middle>;.+?id=\\\")(?<id>.+?)(?<end>\\\".+?/\\>)",
                          RegexOptions.Singleline);

            MatchEvaluator matchEvaluator = new MatchEvaluator(mappery.UPUptakeLookupReplacer);

            Persistence.Key["OrgUptakeMap-2"] = regex.Replace(svg, matchEvaluator);
        }