public void PosterDelay(SidejobEntities context, int status, SidejobModel.ResponseDelay t1)
    {
        if (status == 4)
        {
            var reminderLevel = t1.ReminderLevel;
            if (reminderLevel == 0)
            {
                // Email Poster. Email Bidder
                // Warn Poster with reminder  1
                //Update Time Delay to Reminder level  1

                EmailPoster(t1, Message.Warning);
                EmailBidder(t1, Message.Notification);
                t1.ReminderLevel = 1;

            }
            if (reminderLevel == 1)
            {
                // Email Poster. Email Bidder
                // Warn Poster with reminder 2
                //Update Time Delay to Reminder level 2

                EmailPoster(t1, Message.Warning);
                EmailBidder(t1, Message.Notification);
                t1.ReminderLevel = 2;
            }

            if (reminderLevel == 2)
            {
                // Email Poster. Email Bidder
                // Warn Poster with reminder 3
                //Update Time Delay to Reminder level 3

                EmailPoster(t1, Message.Warning);
                EmailBidder(t1, Message.Notification);
                t1.ReminderLevel = 3;
            }
            if (reminderLevel == 3)
            {
                ////////////////////////////////Poster no payment////////////////////////////

                //  Add The Poster to blocked poster
                BlockPoster(context);

                // Email Bidder & Email Poster
                //Throught Button in CustomerRefund or ProfessionalRefund
                //   EmailBidder(t1, Message.Refund);

                EmailPoster(t1, Message.Blocked);

                //Refund Bidder
                RefundBidder();
                //Through PayPalAPI inthe future
                ////////////////////////////////////////
                //Delete from ClosedProject
                var closedproject = (from c in context.ClosedProjects
                                     where c.ProjectID == ProjectID
                                     select c).FirstOrDefault();
                if (closedproject != null)
                {
                    context.DeleteObject(closedproject);
                }
                context.SaveChanges();

                //Insert into archived
                var currentproject = (from c in context.Projects
                                      where c.ProjectID == ProjectID
                                      select c).FirstOrDefault();
                var currentprojectphoto = (from c in context.ProjectPhotoes
                                           where c.ProjectID == ProjectID
                                           select c).ToList();
                var currentprojectpicture = (from c in context.ProjectPictures
                                             where c.ProjectID == ProjectID
                                             select c).FirstOrDefault();
                var currentprojectrequirement = (from c in context.ProjectRequirements
                                                 where c.ProjectID == ProjectID
                                                 select c).FirstOrDefault();
                if (currentproject != null)
                {
                    if (currentprojectrequirement != null)
                    {
                        if ((from c in context.ArchievedCancelledProjects
                             where c.ProjectID == ProjectID
                             select c).FirstOrDefault() == null)
                        {
                            var acp = new ArchievedCancelledProject
                                          {
                                              ProjectID = (int)currentproject.ProjectID,
                                              DateFinished = DateTime.Now.Date,
                                              PosterID = PosterID,
                                              PosterRole = PosterRole,
                                              BidderID = BidderID,
                                              BidderRole = BidderRole,
                                              HighestBid = currentproject.HighestBid,
                                              Currency = currentprojectrequirement.CurrencyID,
                                              Status = currentproject.StatusInt
                                          };
                            context.AddToArchievedCancelledProjects(acp);
                        }
                    }
                }

                //for each record
                foreach (var cp in currentprojectphoto)
                {
                    if ((from c in context.ArchievedCancelledProjectPhotoes
                         where c.PhotoID == cp.PhotoID
                         select c).FirstOrDefault() == null)
                    {
                        var ac = new ArchievedCancelledProjectPhoto
                                     {
                                         PhotoID = cp.PhotoID,
                                         ProjectID = cp.ProjectID,
                                         PhotoPath = cp.PhotoPath,
                                         Caption = cp.Caption,
                                         AlbumID = cp.AlbumID,
                                         PhotoRank = cp.PhotoRank
                                     };
                        context.AddToArchievedCancelledProjectPhotoes(ac);
                    }
                }

                if (currentprojectpicture != null)
                {
                    if ((from c in context.ArchievedCancelledProjectPictures
                         where c.AlbumID == currentprojectpicture.AlbumID
                         select c).FirstOrDefault() == null)
                    {
                        var acpi = new ArchievedCancelledProjectPicture
                                       {
                                           AlbumID = currentprojectpicture.AlbumID,
                                           AlbumCaption = currentprojectpicture.AlbumCaption,
                                           Numberofimages = currentprojectpicture.Numberofimages,
                                           ProjectID = currentprojectpicture.ProjectID
                                       };
                        context.AddToArchievedCancelledProjectPictures(acpi);
                    }
                }

                if (currentprojectrequirement != null)
                {
                    if ((from c in context.ArchievedCancelledProjectRequirements
                         where c.ProjectID == currentprojectpicture.AlbumID
                         select c).FirstOrDefault() == null)
                    {
                        var acpr = new ArchievedCancelledProjectRequirement
                                       {
                                           ProjectID = currentprojectrequirement.ProjectID,
                                           LCID = currentprojectrequirement.LCID,
                                           CategoryID = currentprojectrequirement.CategoryID,
                                           CategoryName = currentprojectrequirement.CategoryName,
                                           JobID = currentprojectrequirement.JobID,
                                           JobTitle = currentprojectrequirement.JobTitle,
                                           ExperienceID = currentprojectrequirement.ExperienceID,
                                           CrewNumberID = currentprojectrequirement.CrewNumberID,
                                           LicensedID = currentprojectrequirement.LicensedID,
                                           InsuredID = currentprojectrequirement.InsuredID,
                                           RelocationID = currentprojectrequirement.RelocationID,
                                           ProjectTitle = currentprojectrequirement.ProjectTitle,
                                           StartDate = currentprojectrequirement.StartDate,
                                           EndDate = currentprojectrequirement.EndDate,
                                           AmountOffered = currentprojectrequirement.AmountOffered,
                                           CurrencyID = currentprojectrequirement.CurrencyID,
                                           Description = currentprojectrequirement.Description,
                                           SpecialNotes = currentprojectrequirement.SpecialNotes,
                                           Address = currentprojectrequirement.Address,
                                           CountryID = currentprojectrequirement.CountryID,
                                           CountryName = currentprojectrequirement.CountryName,
                                           RegionID = currentprojectrequirement.RegionID,
                                           RegionName = currentprojectrequirement.RegionName,
                                           CityID = currentprojectrequirement.CityID,
                                           CityName = currentprojectrequirement.CityName,
                                           Zipcode = currentprojectrequirement.Zipcode,
                                           DatePosted = currentprojectrequirement.DatePosted,
                                           TimeLeft = currentprojectrequirement.TimeLeft
                                       };

                        context.AddToArchievedCancelledProjectRequirements(acpr);
                    }
                }
                context.SaveChanges();

                //delete from current project
                if (currentprojectrequirement != null) context.DeleteObject(currentproject);
                if (currentprojectphoto.Count != 0)
                {
                    foreach (var cp in currentprojectphoto)
                    {
                        context.DeleteObject(cp);
                    }

                }
                if (currentprojectpicture != null) context.DeleteObject(currentprojectpicture);
                if (currentprojectrequirement != null) context.DeleteObject(currentprojectrequirement);
                t1.ReminderLevel = 4;
                context.SaveChanges();
                ///////////////////////////////Poster no payment////////////////////////////
            }
        }
    }
        public void ArchiveCancelledProject(SidejobEntities context)
        {
            //Insert into archived
            var currentproject = (from c in context.Projects
                                  where c.ProjectID == ProjectID
                                  select c).FirstOrDefault();
            var currentprojectphoto = (from c in context.ProjectPhotoes
                                       where c.ProjectID == ProjectID
                                       select c).ToList();
            var currentprojectpicture = (from c in context.ProjectPictures
                                         where c.ProjectID == ProjectID
                                         select c).FirstOrDefault();
            var currentprojectrequirement = (from c in context.ProjectRequirements
                                             where c.ProjectID == ProjectID
                                             select c).FirstOrDefault();
            if (currentproject != null)
            {
                if (currentprojectrequirement != null)
                {
                    if ((from c in context.ArchievedCancelledProjects
                         where c.ProjectID == ProjectID
                         select c).FirstOrDefault() == null)
                    {
                        var acp = new ArchievedCancelledProject
                        {
                            ProjectID = (int)currentproject.ProjectID,
                            DateFinished = DateTime.Now.Date,
                            PosterID = PosterID,
                            PosterRole = PosterRole,
                            BidderID = BidderID,
                            BidderRole = BidderRole,
                            HighestBid = currentproject.HighestBid,
                            Currency = currentprojectrequirement.CurrencyID,
                            Status = currentproject.StatusInt
                        };
                        context.AddToArchievedCancelledProjects(acp);
                    }
                }
            }

            //for each record
            foreach (var cp in currentprojectphoto)
            {
                if ((from c in context.ArchievedCancelledProjectPhotoes
                     where c.PhotoID == cp.PhotoID
                     select c).FirstOrDefault() == null)
                {
                    var ac = new ArchievedCancelledProjectPhoto
                    {
                        PhotoID = cp.PhotoID,
                        ProjectID = cp.ProjectID,
                        PhotoPath = cp.PhotoPath,
                        Caption = cp.Caption,
                        AlbumID = cp.AlbumID,
                        PhotoRank = cp.PhotoRank
                    };
                    context.AddToArchievedCancelledProjectPhotoes(ac);
                }
            }

            if (currentprojectpicture != null)
            {
                if ((from c in context.ArchievedCancelledProjectPictures
                     where c.AlbumID == currentprojectpicture.AlbumID
                     select c).FirstOrDefault() == null)
                {
                    var acpi = new ArchievedCancelledProjectPicture
                    {
                        AlbumID = currentprojectpicture.AlbumID,
                        AlbumCaption = currentprojectpicture.AlbumCaption,
                        Numberofimages = currentprojectpicture.Numberofimages,
                        ProjectID = currentprojectpicture.ProjectID
                    };
                    context.AddToArchievedCancelledProjectPictures(acpi);
                }
            }

            if (currentprojectrequirement != null)
            {
                if ((from c in context.ArchievedCancelledProjectRequirements
                     where c.ProjectID == currentprojectpicture.AlbumID
                     select c).FirstOrDefault() == null)
                {
                    var acpr = new ArchievedCancelledProjectRequirement
                    {
                        ProjectID = currentprojectrequirement.ProjectID,
                        LCID = currentprojectrequirement.LCID,
                        CategoryID = currentprojectrequirement.CategoryID,
                        CategoryName = currentprojectrequirement.CategoryName,
                        JobID = currentprojectrequirement.JobID,
                        JobTitle = currentprojectrequirement.JobTitle,
                        ExperienceID = currentprojectrequirement.ExperienceID,
                        CrewNumberID = currentprojectrequirement.CrewNumberID,
                        LicensedID = currentprojectrequirement.LicensedID,
                        InsuredID = currentprojectrequirement.InsuredID,
                        RelocationID = currentprojectrequirement.RelocationID,
                        ProjectTitle = currentprojectrequirement.ProjectTitle,
                        StartDate = currentprojectrequirement.StartDate,
                        EndDate = currentprojectrequirement.EndDate,
                        AmountOffered = currentprojectrequirement.AmountOffered,
                        CurrencyID = currentprojectrequirement.CurrencyID,
                        Description = currentprojectrequirement.Description,
                        SpecialNotes = currentprojectrequirement.SpecialNotes,
                        Address = currentprojectrequirement.Address,
                        CountryID = currentprojectrequirement.CountryID,
                        CountryName = currentprojectrequirement.CountryName,
                        RegionID = currentprojectrequirement.RegionID,
                        RegionName = currentprojectrequirement.RegionName,
                        CityID = currentprojectrequirement.CityID,
                        CityName = currentprojectrequirement.CityName,
                        Zipcode = currentprojectrequirement.Zipcode,
                        DatePosted = currentprojectrequirement.DatePosted,
                        TimeLeft = currentprojectrequirement.TimeLeft
                    };

                    context.AddToArchievedCancelledProjectRequirements(acpr);
                }
            }
            context.SaveChanges();

            //delete from current project
            if (currentprojectrequirement != null) context.DeleteObject(currentproject);
            if (currentprojectphoto.Count != 0)
            {
                foreach (var cp in currentprojectphoto)
                {
                    context.DeleteObject(cp);
                }

            }
            if (currentprojectpicture != null) context.DeleteObject(currentprojectpicture);
            if (currentprojectrequirement != null) context.DeleteObject(currentprojectrequirement);
            context.SaveChanges();
        }