Esempio n. 1
0
    private System.Drawing.Image GetScaledPhoto(int activismId, int ySize, int pWidth, int pNoOverlay)
    {
        ExternalActivity activity = ExternalActivity.FromIdentity(activismId);

        Documents docs = Documents.ForObject(activity);

        if (docs.Count == 0)
        {
            return(null);
        }

        using (System.Drawing.Image unscaledImage = System.Drawing.Image.FromFile(@"C:\Data\Uploads\PirateWeb\" + docs[0].ServerFileName))
        {
            // Generate image
            float factor = 1;
            int   xSize  = 600;
            if (pWidth > 0 && pWidth < 1000)
            {
                factor = ((float)pWidth) / ((float)xSize);
                xSize  = pWidth;
                ySize  = (int)(xSize * ((float)unscaledImage.Height) / ((float)unscaledImage.Width));
            }
            string label = activity.DateTime.ToString("yyyy-MM-dd") + ": " + activity.Description;

            System.Drawing.Image newImage = GetResizedImage(xSize, label, unscaledImage, pNoOverlay);

            return(newImage);
        }
    }
Esempio n. 2
0
    protected void ButtonLogActivity_Click(object sender, EventArgs e)
    {
        // First, if there's an upload that the user hasn't processed, process it first.

        if (this.Upload.UploadedFiles.Count > 0)
        {
            ProcessUpload();
        }

        // If args were invalid, abort

        if (!Page.IsValid)
        {
            return;
        }


        // Read the form data

        int temporaryId = Int32.Parse(this.TemporaryDocumentIdentity.Text);

        int       organizationId = Int32.Parse(this.DropOrganizations.SelectedValue);
        Geography geography      = this.DropGeographies.SelectedGeography;

        DateTime             created      = DateTime.Now;
        DateTime             activityDate = (DateTime)this.DatePicker.SelectedDate;
        string               description  = this.TextDescription.Text;
        ExternalActivityType type         =
            (ExternalActivityType)Enum.Parse(typeof(ExternalActivityType), this.DropActivityType.SelectedValue);

        // Create the activism record

        ExternalActivity activity = ExternalActivity.Create(Organization.FromIdentity(organizationId), geography, type,
                                                            activityDate, description, _currentUser);

        // Move documents to the new activism

        Documents.ForObject(new TemporaryIdentity(temporaryId)).SetForeignObjectForAll(activity);

        // Create the event for PirateBot-Mono to send off mails

        Activizr.Logic.Support.PWEvents.CreateEvent(EventSource.PirateWeb, EventType.ActivismLogged,
                                                    _currentUser.Identity, organizationId, geography.Identity, _currentUser.Identity,
                                                    activity.Identity, string.Empty);

        Page.ClientScript.RegisterStartupScript(typeof(Page), "OkMessage", @"alert ('The activism has been logged.');", true);

        // Clear the text fields

        this.TextDescription.Text           = string.Empty;
        this.TemporaryDocumentIdentity.Text = "0";
    }
Esempio n. 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int activismId = 0;

        string idString = Request.QueryString["Id"];

        if (idString == "latest")
        {
            ExternalActivities activities = ExternalActivities.ForOrganization(Organization.PPSE, ExternalActivities.SortOrder.CreationDateDescending, 1);
            activismId = activities[0].Identity;
        }
        else
        {
            activismId = Int32.Parse(idString);
        }

        int ySize      = 450;
        int pWidth     = Int32.Parse("0" + Request.QueryString["Width"]);
        int pNoOverlay = Int32.Parse("0" + Request.QueryString["NoOverlay"]);

        int cacheLength = (activismId % 10) * 100 + 500;

        Response.Cache.SetExpires(DateTime.Now.AddSeconds(cacheLength));

        string photoPath = @"C:\Data\Uploads\PirateWeb\ActivismImgCache\";
        string fileName  = "a" + activismId + "w" + pWidth + "o" + pNoOverlay + ".jpg";

        Response.ContentType = "image/jpeg";
        try
        {
            FileInfo         cachedFile = new FileInfo(photoPath + fileName);
            ExternalActivity act        = ExternalActivity.FromIdentity(activismId);
            if (cachedFile.LastWriteTime < act.CreatedDateTime)
            {
                cachedFile.Delete();
                throw new FileNotFoundException("Cached File Invalid");
            }
            Response.WriteFile(photoPath + fileName, false);
        }
        catch (FileNotFoundException)
        {
            // Call garbage collector to prevent Out Of Memory
            GC.Collect();
            GC.WaitForPendingFinalizers();

            using (System.Drawing.Image photo = GetScaledPhoto(activismId, ySize, pWidth, pNoOverlay))
            {
                if (photo != null)
                {
                    try
                    {
                        photo.Save(photoPath + fileName, ImageFormat.Jpeg);
                    }
                    catch (Exception) { }
                    using (Stream outputstream = Response.OutputStream)
                    {
                        photo.Save(outputstream, ImageFormat.Jpeg);
                    }
                }
            }
        }
    }
Esempio n. 4
0
        static public object FromBasic(IHasIdentity basic)
        {
            string argumentType = basic.GetType().ToString();

            switch (argumentType)
            {
            // ----- Is there any way to make self-writing code here through replication or similar, so
            // ----- that every case doesn't need to be listed?


            // ------------ COMMUNICATION CLASSES ------------

            case "Swarmops.Basic.Types.BasicCommunicationTurnaround":
                return(CommunicationTurnaround.FromBasic((BasicCommunicationTurnaround)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundComm":
                return(OutboundComm.FromBasic((BasicOutboundComm)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundCommRecipient":
                return(OutboundCommRecipient.FromBasic((BasicOutboundCommRecipient)basic));


            // ----------- FINANCIAL CLASSES ----------

            case "Swarmops.Basic.Types.BasicExpenseClaim":
                return(ExpenseClaim.FromBasic((BasicExpenseClaim)basic));

            case "Swarmops.Basic.Types.Financial.BasicCashAdvance":
                return(CashAdvance.FromBasic((BasicCashAdvance)basic));

            case "Swarmops.Basic.Types.BasicInboundInvoice":
                return(InboundInvoice.FromBasic((BasicInboundInvoice)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialAccount":
                return(FinancialAccount.FromBasic((BasicFinancialAccount)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransaction":
                return(FinancialTransaction.FromBasic((BasicFinancialTransaction)basic));

            case "Swarmops.Basic.Types.BasicFinancialValidation":
                return(FinancialValidation.FromBasic((BasicFinancialValidation)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoice":
                return(OutboundInvoice.FromBasic((BasicOutboundInvoice)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoiceItem":
                return(OutboundInvoiceItem.FromBasic((BasicOutboundInvoiceItem)basic));

            case "Swarmops.Basic.Types.BasicPayment":
                return(Payment.FromBasic((BasicPayment)basic));

            case "Swarmops.Basic.Types.BasicPaymentGroup":
                return(PaymentGroup.FromBasic((BasicPaymentGroup)basic));

            case "Swarmops.Basic.Types.BasicPayout":
                return(Payout.FromBasic((BasicPayout)basic));

            case "Swarmops.Basic.Types.BasicPayrollAdjustment":
                return(PayrollAdjustment.FromBasic((BasicPayrollAdjustment)basic));

            case "Swarmops.Basic.Types.BasicPayrollItem":
                return(PayrollItem.FromBasic((BasicPayrollItem)basic));

            case "Swarmops.Basic.Types.BasicSalary":
                return(Salary.FromBasic((BasicSalary)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagSet":
                return(FinancialTransactionTagSet.FromBasic((BasicFinancialTransactionTagSet)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagType":
                return(FinancialTransactionTagType.FromBasic((BasicFinancialTransactionTagType)basic));

            // ------------ GOVERNANCE CLASSES ------------

            case "Swarmops.Basic.Types.BasicBallot":
                return(Ballot.FromBasic((BasicBallot)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionCandidate":
                return(MeetingElectionCandidate.FromBasic((BasicInternalPollCandidate)basic));

            case "Swarmops.Basic.Types.BasicMeetingElection":
                return(MeetingElection.FromBasic((BasicInternalPoll)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionVote":
                return(MeetingElectionVote.FromBasic((BasicInternalPollVote)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotion":
                return(Motion.FromBasic((BasicMotion)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotionAmendment":
                return(MotionAmendment.FromBasic((BasicMotionAmendment)basic));


            // ------------ PARLEY/ACTIVISM CLASSES ------------

            case "Swarmops.Basic.Types.BasicExternalActivity":
                return(ExternalActivity.FromBasic((BasicExternalActivity)basic));

            case "Swarmops.Basic.Types.BasicParley":
                return(Parley.FromBasic((BasicParley)basic));

            case "Swarmops.Basic.Types.BasicParleyAttendee":
                return(ParleyAttendee.FromBasic((BasicParleyAttendee)basic));

            case "Swarmops.Basic.Types.BasicParleyOption":
                return(ParleyOption.FromBasic((BasicParleyOption)basic));

            case "Swarmops.Basic.Types.BasicPerson":
                return(Person.FromBasic((BasicPerson)basic));

            // ------------------ FAIL ----------------

            default:
                throw new NotImplementedException("Unimplemented argument type: " + argumentType);
            }
        }