public static Common.Models.Activities.ActivityTask Create(
     Transaction t,
     Common.Models.Activities.ActivityTask model,
     Common.Models.Account.Users creator)
 {
     return(Create(model, creator, t.Connection, false));
 }
        public static Common.Models.Activities.ActivityTask Create(
            Common.Models.Activities.ActivityTask model,
            Common.Models.Account.Users creator,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.CreatedBy = model.ModifiedBy = creator;
            model.Created   = model.Modified = DateTime.UtcNow;
            DBOs.Activities.ActivityTask dbo = Mapper.Map <DBOs.Activities.ActivityTask>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            if (conn.Execute("INSERT INTO \"activity_task\" (\"type\", \"is_campaign_response\", \"subject\", \"body\", \"owner\", \"priority\", \"due\", \"state\", \"status_reason\", " +
                             "\"duration\", \"utc_created\", \"utc_modified\", \"created_by_user_pid\", \"modified_by_user_pid\") " +
                             "VALUES (@Type, @IsCampaignResponse, @Subject, @Body, @Owner, @Priority, @Due, @State, @StatusReason, @Duration, " +
                             "@UtcCreated, @UtcModified, @CreatedByUserPId, @ModifiedByUserPId)",
                             dbo) > 0)
            {
                model.Id = conn.Query <DBOs.Activities.ActivityTask>("SELECT currval(pg_get_serial_sequence('activity_base', 'id')) AS \"id\"").Single().Id;
            }

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
 public static Common.Models.Activities.ActivityTask Edit(
     Transaction t,
     Common.Models.Activities.ActivityTask model,
     Common.Models.Account.Users modifier)
 {
     return(Edit(model, modifier, t.Connection, false));
 }
Example #4
0
        public ActionResult Details(long id)
        {
            ViewModels.Activities.ActivityTaskViewModel viewModel = new ViewModels.Activities.ActivityTaskViewModel();

            using (IDbConnection conn = Data.Database.Instance.GetConnection())
            {
                Common.Models.Activities.ActivityTask model = Data.Activities.ActivityTask.Get(id, conn, false);
                model.Owner        = Data.Contacts.Contact.Get(model.Owner.Id.Value, conn, false);
                model.Priority     = Data.Activities.ActivityPriority.Get(model.Priority.Id.Value, conn, false);
                model.StatusReason = Data.Activities.ActivityStatusReason.Get(model.StatusReason.Id.Value, conn, false);
                model.Type         = Data.Activities.ActivityType.Get(model.Type.Id.Value, conn, false);

                viewModel              = Mapper.Map <ViewModels.Activities.ActivityTaskViewModel>(model);
                viewModel.Owner        = Mapper.Map <ViewModels.Contacts.ContactViewModel>(model.Owner);
                viewModel.Priority     = Mapper.Map <ViewModels.Activities.ActivityPriorityViewModel>(model.Priority);
                viewModel.StatusReason = Mapper.Map <ViewModels.Activities.ActivityStatusReasonViewModel>(model.StatusReason);
                viewModel.Type         = Mapper.Map <ViewModels.Activities.ActivityTypeViewModel>(model.Type);

                Common.Models.Activities.ActivityRegardingType regtype = Data.Activities.ActivityRegardingType.GetFromActivityId(model.Id.Value, conn, false);

                if (regtype.Title == "Lead")
                {
                    Common.Models.Activities.ActivityRegardingLead ar = Data.Activities.ActivityRegardingLead.GetFromActivityId(model.Id.Value, conn, false);
                    ar.Lead                              = Data.Leads.Lead.Get(ar.Lead.Id.Value, conn, false);
                    ar.Lead.Contact                      = Data.Contacts.Contact.Get(ar.Lead.Contact.Id.Value, conn, false);
                    viewModel.RegardingLead              = Mapper.Map <ViewModels.Activities.ActivityRegardingLeadViewModel>(ar);
                    viewModel.RegardingLead.Lead         = Mapper.Map <ViewModels.Leads.LeadViewModel>(ar.Lead);
                    viewModel.RegardingLead.Lead.Contact = Mapper.Map <ViewModels.Contacts.ContactViewModel>(ar.Lead.Contact);
                    viewModel.RegardingLead.Type         = Mapper.Map <ViewModels.Activities.ActivityRegardingTypeViewModel>(regtype);
                }
                else
                {
                    Common.Models.Activities.ActivityRegardingOpportunity ao = Data.Activities.ActivityRegardingOpportunity.GetFromActivityId(model.Id.Value, conn, false);
                    ao.Opportunity                                     = Data.Opportunities.Opportunity.Get(ao.Opportunity.Id.Value, conn, false);
                    ao.Opportunity.Account                             = Data.Contacts.Contact.Get(ao.Opportunity.Account.Id.Value, conn, false);
                    viewModel.RegardingOpportunity                     = Mapper.Map <ViewModels.Activities.ActivityRegardingOpportunityViewModel>(ao);
                    viewModel.RegardingOpportunity.Opportunity         = Mapper.Map <ViewModels.Opportunities.OpportunityViewModel>(ao.Opportunity);
                    viewModel.RegardingOpportunity.Opportunity.Account = Mapper.Map <ViewModels.Contacts.ContactViewModel>(ao.Opportunity.Account);
                    viewModel.RegardingOpportunity.Type                = Mapper.Map <ViewModels.Activities.ActivityRegardingTypeViewModel>(regtype);
                }

                PopulateCoreDetails(viewModel, conn);
            }

            return(View(viewModel));
        }
        public static Common.Models.Activities.ActivityTask Edit(
            Common.Models.Activities.ActivityTask model,
            Common.Models.Account.Users modifier,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.ModifiedBy = modifier;
            model.Modified   = DateTime.UtcNow;
            DBOs.Activities.ActivityTask dbo = Mapper.Map <DBOs.Activities.ActivityTask>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            conn.Execute("UPDATE \"activity_task\" SET " +
                         "\"type\"=@Type, \"is_campaign_response\"=@IsCampaignResponse, \"subject\"=@Subject, \"body\"=@Body, \"owner\"=@Owner, \"priority\"=@Priority, \"due\"=@Due, " +
                         "\"state\"=@State, \"status_reason\"=@StatusReason, " +
                         "\"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " +
                         "WHERE \"id\"=@Id", dbo);

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
Example #6
0
        public void BuildMappings()
        {
            Mapper.CreateMap <Common.Models.Activities.ActivityRegardingOpportunity, ActivityRegardingOpportunityViewModel>()
            .ForMember(dst => dst.IsStub, opt => opt.UseValue(false))
            .ForMember(dst => dst.Id, opt => opt.MapFrom(src => src.Id))
            .ForMember(dst => dst.Type, opt => opt.ResolveUsing(db =>
            {
                if (db.Type == null || !db.Type.Id.HasValue)
                {
                    return(null);
                }
                return(new ViewModels.Activities.ActivityRegardingTypeViewModel()
                {
                    Id = db.Type.Id.Value,
                    IsStub = true
                });
            }))
            .ForMember(dst => dst.Activity, opt => opt.ResolveUsing(db =>
            {
                if (db.Activity == null || !db.Activity.Id.HasValue)
                {
                    return(null);
                }

                Common.Models.Activities.ActivityType type = Data.Activities.ActivityType.GetByActivityId(db.Activity.Id.Value);

                if (type.Title == "Phone Call")
                {
                    return new ViewModels.Activities.ActivityPhonecallViewModel()
                    {
                        Id     = db.Activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (type.Title == "Email")
                {
                    return new ViewModels.Activities.ActivityEmailViewModel()
                    {
                        Id     = db.Activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (type.Title == "Letter")
                {
                    return new ViewModels.Activities.ActivityLetterViewModel()
                    {
                        Id     = db.Activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (type.Title == "Task")
                {
                    return new ViewModels.Activities.ActivityTaskViewModel()
                    {
                        Id     = db.Activity.Id,
                        IsStub = true
                    }
                }
                ;
                else
                {
                    throw new System.InvalidOperationException("db.Activity.Type of unknown value");
                }
            }))
            .ForMember(dst => dst.Opportunity, opt => opt.ResolveUsing(db =>
            {
                if (db.Opportunity == null || !db.Opportunity.Id.HasValue)
                {
                    return(null);
                }
                return(new ViewModels.Opportunities.OpportunityViewModel()
                {
                    Id = db.Opportunity.Id.Value,
                    IsStub = true
                });
            }));

            Mapper.CreateMap <ActivityRegardingOpportunityViewModel, Common.Models.Activities.ActivityRegardingOpportunity>()
            .ForMember(dst => dst.Id, opt => opt.MapFrom(src => src.Id))
            .ForMember(dst => dst.Type, opt => opt.ResolveUsing(x =>
            {
                if (x.Type == null || !x.Type.Id.HasValue)
                {
                    return(null);
                }
                return(new ViewModels.Activities.ActivityRegardingTypeViewModel()
                {
                    Id = x.Type.Id.Value
                });
            }))
            .ForMember(dst => dst.Activity, opt => opt.ResolveUsing(db =>
            {
                if (db.Activity == null || !db.Activity.Id.HasValue)
                {
                    return(null);
                }

                // ActivityTask has all properties of base and no more
                Common.Models.Activities.ActivityTask activity = Data.Activities.ActivityTask.Get(db.Activity.Id.Value);

                if (activity.Type.Title == "Phone Call")
                {
                    return new Common.Models.Activities.ActivityPhonecall()
                    {
                        Id     = activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (activity.Type.Title == "Email")
                {
                    return new Common.Models.Activities.ActivityEmail()
                    {
                        Id     = activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (activity.Type.Title == "Letter")
                {
                    return new Common.Models.Activities.ActivityLetter()
                    {
                        Id     = activity.Id,
                        IsStub = true
                    }
                }
                ;
                else if (activity.Type.Title == "Task")
                {
                    return new Common.Models.Activities.ActivityTask()
                    {
                        Id     = activity.Id,
                        IsStub = true
                    }
                }
                ;
                else
                {
                    throw new System.InvalidOperationException("db.Activity.Type of unknown value");
                }
            }))
            .ForMember(dst => dst.Opportunity, opt => opt.ResolveUsing(x =>
            {
                if (x.Opportunity == null || !x.Opportunity.Id.HasValue)
                {
                    return(null);
                }
                return(new ViewModels.Opportunities.OpportunityViewModel()
                {
                    Id = x.Opportunity.Id.Value
                });
            }));
        }
Example #7
0
        public ActionResult Edit(long id)
        {
            Common.Models.Account.Users currentUser;
            ViewModels.Activities.ActivityTaskViewModel                viewModel        = new ViewModels.Activities.ActivityTaskViewModel();
            List <ViewModels.Activities.ActivityDirectionViewModel>    directionList    = new List <ViewModels.Activities.ActivityDirectionViewModel>();
            List <ViewModels.Activities.ActivityStatusReasonViewModel> statusReasonList = new List <ViewModels.Activities.ActivityStatusReasonViewModel>();
            List <ViewModels.Activities.ActivityPriorityViewModel>     priorityList     = new List <ViewModels.Activities.ActivityPriorityViewModel>();

            using (IDbConnection conn = Data.Database.Instance.GetConnection())
            {
                currentUser = Data.Account.Users.Get(User.Identity.Name, conn, false);

                Common.Models.Activities.ActivityTask model = Data.Activities.ActivityTask.Get(id, conn, false);
                model.Owner        = Data.Contacts.Contact.Get(model.Owner.Id.Value, conn, false);
                model.Priority     = Data.Activities.ActivityPriority.Get(model.Priority.Id.Value, conn, false);
                model.StatusReason = Data.Activities.ActivityStatusReason.Get(model.StatusReason.Id.Value, conn, false);
                model.Type         = Data.Activities.ActivityType.Get(model.Type.Id.Value, conn, false);

                viewModel       = Mapper.Map <ViewModels.Activities.ActivityTaskViewModel>(model);
                viewModel.Owner = Mapper.Map <ViewModels.Contacts.ContactViewModel>(model.Owner);

                Common.Models.Activities.ActivityRegardingType regtype = Data.Activities.ActivityRegardingType.GetFromActivityId(model.Id.Value, conn, false);

                if (regtype.Title == "Lead")
                {
                    Common.Models.Activities.ActivityRegardingLead ar = Data.Activities.ActivityRegardingLead.GetFromActivityId(model.Id.Value, conn, false);
                    ar.Lead                              = Data.Leads.Lead.Get(ar.Lead.Id.Value, conn, false);
                    ar.Lead.Contact                      = Data.Contacts.Contact.Get(ar.Lead.Contact.Id.Value, conn, false);
                    viewModel.RegardingLead              = Mapper.Map <ViewModels.Activities.ActivityRegardingLeadViewModel>(ar);
                    viewModel.RegardingLead.Lead         = Mapper.Map <ViewModels.Leads.LeadViewModel>(ar.Lead);
                    viewModel.RegardingLead.Lead.Contact = Mapper.Map <ViewModels.Contacts.ContactViewModel>(ar.Lead.Contact);
                    viewModel.RegardingLead.Type         = Mapper.Map <ViewModels.Activities.ActivityRegardingTypeViewModel>(regtype);
                }
                else
                {
                    Common.Models.Activities.ActivityRegardingOpportunity ao = Data.Activities.ActivityRegardingOpportunity.GetFromActivityId(model.Id.Value, conn, false);
                    ao.Opportunity                                     = Data.Opportunities.Opportunity.Get(ao.Opportunity.Id.Value, conn, false);
                    ao.Opportunity.Account                             = Data.Contacts.Contact.Get(ao.Opportunity.Account.Id.Value, conn, false);
                    viewModel.RegardingOpportunity                     = Mapper.Map <ViewModels.Activities.ActivityRegardingOpportunityViewModel>(ao);
                    viewModel.RegardingOpportunity.Opportunity         = Mapper.Map <ViewModels.Opportunities.OpportunityViewModel>(ao.Opportunity);
                    viewModel.RegardingOpportunity.Opportunity.Account = Mapper.Map <ViewModels.Contacts.ContactViewModel>(ao.Opportunity.Account);
                    viewModel.RegardingOpportunity.Type                = Mapper.Map <ViewModels.Activities.ActivityRegardingTypeViewModel>(regtype);
                }

                Data.Activities.ActivityDirection.List(conn, false).ForEach(x =>
                {
                    ViewModels.Activities.ActivityDirectionViewModel vm = Mapper.Map <ViewModels.Activities.ActivityDirectionViewModel>(x);
                    directionList.Add(vm);
                });

                Data.Activities.ActivityStatusReason.List(conn, false).ForEach(x =>
                {
                    ViewModels.Activities.ActivityStatusReasonViewModel vm = Mapper.Map <ViewModels.Activities.ActivityStatusReasonViewModel>(x);
                    statusReasonList.Add(vm);
                });

                Data.Activities.ActivityPriority.List(conn, false).ForEach(x =>
                {
                    ViewModels.Activities.ActivityPriorityViewModel vm = Mapper.Map <ViewModels.Activities.ActivityPriorityViewModel>(x);
                    priorityList.Add(vm);
                });
            }

            ViewBag.DirectionList    = directionList;
            ViewBag.StatusReasonList = statusReasonList;
            ViewBag.PriorityList     = priorityList;

            return(View(viewModel));
        }