Пример #1
0
        public static Common.Models.Matters.MatterContact Create(
            Common.Models.Matters.MatterContact model,
            Common.Models.Account.Users creator,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.Created   = model.Modified = DateTime.UtcNow;
            model.CreatedBy = model.ModifiedBy = creator;

            DBOs.Matters.MatterContact dbo = Mapper.Map <DBOs.Matters.MatterContact>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            if (conn.Execute("INSERT INTO \"matter_contact\" (\"matter_id\", \"contact_id\", " +
                             "\"is_client\", \"is_client_contact\", \"is_appointed\", \"is_party\", \"party_title\", \"is_judge\", " +
                             "\"is_witness\", \"is_attorney\", \"attorney_for_contact_id\", \"is_lead_attorney\", \"is_support_staff\", " +
                             "\"support_staff_for_contact_id\", \"is_third_party_payor\", \"third_party_payor_for_contact_id\", " +
                             "\"utc_created\", \"utc_modified\", \"created_by_user_pid\", \"modified_by_user_pid\") " +
                             "VALUES (@MatterId, @ContactId, @IsClient, @IsClientContact, @IsAppointed, @IsParty, " +
                             "@PartyTitle, @IsJudge, @IsWitness, @IsAttorney, @AttorneyForContactId, @IsLeadAttorney, " +
                             "@IsSupportStaff, @SupportStaffForContactId, @IsThirdPartyPayor, @ThirdPartyPayorForContactId, " +
                             "@UtcCreated, @UtcModified, @CreatedByUserPId, @ModifiedByUserPId)",
                             dbo) > 0)
            {
                model.Id = conn.Query <DBOs.Matters.MatterContact>("SELECT currval(pg_get_serial_sequence('matter_contact', 'id')) AS \"id\"").Single().Id;
            }

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
Пример #2
0
 public static Common.Models.Matters.MatterContact Edit(
     Transaction t,
     Common.Models.Matters.MatterContact model,
     Common.Models.Account.Users modifier)
 {
     return(Edit(model, modifier, t.Connection, false));
 }
Пример #3
0
 public static Common.Models.Matters.MatterContact Enable(
     Transaction t,
     Common.Models.Matters.MatterContact model,
     Common.Models.Account.Users enabler)
 {
     return(Enable(model, enabler, t.Connection, false));
 }
Пример #4
0
        public static Common.Models.Matters.MatterContact Edit(
            Common.Models.Matters.MatterContact model,
            Common.Models.Account.Users modifier,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.ModifiedBy = modifier;
            model.Modified   = DateTime.UtcNow;
            DBOs.Matters.MatterContact dbo = Mapper.Map <DBOs.Matters.MatterContact>(model);

            conn = DataHelper.OpenIfNeeded(conn);

            conn.Execute("UPDATE \"matter_contact\" SET " +
                         "\"matter_id\"=@MatterId, \"contact_id\"=@ContactId, " +
                         "\"is_client\"=@IsClient, \"is_client_contact\"=@IsClientContact, \"is_appointed\"=@IsAppointed, " +
                         "\"is_party\"=@IsParty, \"party_title\"=@PartyTitle, \"is_judge\"=@IsJudge, " +
                         "\"is_witness\"=@IsWitness, \"is_attorney\"=@IsAttorney, " +
                         "\"attorney_for_contact_id\"=@AttorneyForContactId, \"is_lead_attorney\"=@IsLeadAttorney, \"is_support_staff\"=@IsSupportStaff, " +
                         "\"support_staff_for_contact_id\"=@SupportStaffForContactId, \"is_third_party_payor\"=@IsThirdPartyPayor, \"third_party_payor_for_contact_id\"=@ThirdPartyPayorForContactId, " +
                         "\"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " +
                         "WHERE \"id\"=@Id", dbo);

            DataHelper.Close(conn, closeConnection);

            return(model);
        }
Пример #5
0
 public static Common.Models.Matters.MatterContact Create(
     Transaction t,
     Common.Models.Matters.MatterContact model,
     Common.Models.Account.Users creator)
 {
     return(Create(model, creator, t.Connection, false));
 }
Пример #6
0
        ListMatterRelationshipsForContact(int contactId, Guid matterId)
        {
            List <Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact> > dbo = null;
            List <Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact> > modelList =
                new List <Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact> >();

            using (IDbConnection conn = Database.Instance.GetConnection())
            {
                conn.Open();
                dbo = conn.Query <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact,
                                  Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact> >
                          ("SELECT * FROM \"matter\" " +
                          "JOIN \"matter_contact\" ON \"matter\".\"id\"=\"matter_contact\".\"matter_id\" " +
                          "JOIN \"contact\" ON \"matter_contact\".\"contact_id\"=\"contact\".\"id\" " +
                          "WHERE \"matter\".\"id\"=@MatterId " +
                          "AND \"contact\".\"id\"!=@ContactId",
                          (mtr, matterContact, contact) =>
                {
                    return(new Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact>(mtr, matterContact, contact));
                },
                          new { MatterId = matterId, ContactId = contactId }).ToList();
            }

            dbo.ForEach(x =>
            {
                Common.Models.Matters.Matter m         = Mapper.Map <Common.Models.Matters.Matter>(x.Item1);
                Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(x.Item2);
                Common.Models.Contacts.Contact c       = Mapper.Map <Common.Models.Contacts.Contact>(x.Item3);
                modelList.Add(new Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact>(m, mc, c));
            });

            return(modelList);
        }
Пример #7
0
        public static Common.Models.Matters.MatterContact Disable(Common.Models.Matters.MatterContact model,
                                                                  Common.Models.Account.Users disabler)
        {
            model.DisabledBy = disabler;
            model.Disabled   = DateTime.UtcNow;

            DataHelper.Disable <Common.Models.Matters.MatterContact,
                                DBOs.Matters.MatterContact>("matter_contact", disabler.PId.Value, model.Id);

            return(model);
        }
Пример #8
0
        public static Common.Models.Matters.MatterContact Enable(Common.Models.Matters.MatterContact model,
                                                                 Common.Models.Account.Users enabler)
        {
            model.ModifiedBy = enabler;
            model.Modified   = DateTime.UtcNow;
            model.DisabledBy = null;
            model.Disabled   = null;

            DataHelper.Enable <Common.Models.Matters.MatterContact,
                               DBOs.Matters.MatterContact>("matter_contact", enabler.PId.Value, model.Id);

            return(model);
        }
Пример #9
0
        public static Common.Models.Matters.MatterContact Disable(
            Common.Models.Matters.MatterContact model,
            Common.Models.Account.Users disabler,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            model.DisabledBy = disabler;
            model.Disabled   = DateTime.UtcNow;

            DataHelper.Disable <Common.Models.Matters.MatterContact,
                                DBOs.Matters.MatterContact>("matter_contact", disabler.PId.Value, model.Id, conn, closeConnection);

            return(model);
        }
Пример #10
0
        public static Common.Models.Matters.MatterContact Edit(Common.Models.Matters.MatterContact model,
                                                               Common.Models.Account.Users modifier)
        {
            model.ModifiedBy = modifier;
            model.Modified   = DateTime.UtcNow;
            DBOs.Matters.MatterContact dbo = Mapper.Map <DBOs.Matters.MatterContact>(model);

            using (IDbConnection conn = Database.Instance.GetConnection())
            {
                conn.Execute("UPDATE \"matter_contact\" SET " +
                             "\"matter_id\"=@MatterId, \"contact_id\"=@ContactId, \"role\"=@Role, \"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " +
                             "WHERE \"id\"=@Id", dbo);
            }

            return(model);
        }
Пример #11
0
        public static Common.Models.Matters.MatterContact Create(Common.Models.Matters.MatterContact model,
                                                                 Common.Models.Account.Users creator)
        {
            model.Created   = model.Modified = DateTime.UtcNow;
            model.CreatedBy = model.ModifiedBy = creator;

            DBOs.Matters.MatterContact dbo = Mapper.Map <DBOs.Matters.MatterContact>(model);

            using (IDbConnection conn = Database.Instance.GetConnection())
            {
                conn.Execute("INSERT INTO \"matter_contact\" (\"matter_id\", \"contact_id\", \"role\", \"utc_created\", \"utc_modified\", \"created_by_user_pid\", \"modified_by_user_pid\") " +
                             "VALUES (@MatterId, @ContactId, @Role, @UtcCreated, @UtcModified, @CreatedByUserPId, @ModifiedByUserPId)",
                             dbo);
                model.Id = conn.Query <DBOs.Matters.MatterContact>("SELECT currval(pg_get_serial_sequence('matter_contact', 'id')) AS \"id\"").Single().Id;
            }

            return(model);
        }
Пример #12
0
        ListMatterRelationshipsForContact(
            int contactId,
            Guid matterId,
            IDbConnection conn   = null,
            bool closeConnection = true)
        {
            List <Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact> > dbo = null;
            List <Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact> > modelList =
                new List <Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact> >();

            conn = DataHelper.OpenIfNeeded(conn);

            dbo = conn.Query <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact,
                              Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact> >
                      ("SELECT * FROM \"matter\" " +
                      "JOIN \"matter_contact\" ON \"matter\".\"id\"=\"matter_contact\".\"matter_id\" " +
                      "JOIN \"contact\" ON \"matter_contact\".\"contact_id\"=\"contact\".\"id\" " +
                      "WHERE \"matter\".\"id\"=@MatterId " +
                      "AND \"contact\".\"id\"!=@ContactId",
                      (mtr, matterContact, contact) =>
            {
                return(new Tuple <DBOs.Matters.Matter, DBOs.Matters.MatterContact, DBOs.Contacts.Contact>(mtr, matterContact, contact));
            },
                      new { MatterId = matterId, ContactId = contactId }).ToList();

            DataHelper.Close(conn, closeConnection);

            dbo.ForEach(x =>
            {
                Common.Models.Matters.Matter m         = Mapper.Map <Common.Models.Matters.Matter>(x.Item1);
                Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(x.Item2);
                Common.Models.Contacts.Contact c       = Mapper.Map <Common.Models.Contacts.Contact>(x.Item3);
                modelList.Add(new Tuple <Common.Models.Matters.Matter, Common.Models.Matters.MatterContact, Common.Models.Contacts.Contact>(m, mc, c));
            });

            return(modelList);
        }
        public ActionResult Convert(long id, ViewModels.Opportunities.CreateOpportunityViewModel viewModel)
        {
            Common.Models.Account.Users             currentUser;
            Common.Models.Opportunities.Opportunity opportunity;
            Common.Models.Matters.Matter            matter;

            using (Data.Transaction trans = Data.Transaction.Create(true))
            {
                try
                {
                    Common.Models.Leads.Lead lead;
                    currentUser = Data.Account.Users.Get(trans, User.Identity.Name);
                    Common.Models.Leads.Lead oldLead = Data.Leads.Lead.Get(trans, viewModel.Opportunity.Lead.Id.Value);

                    lead     = Mapper.Map <Common.Models.Leads.Lead>(viewModel.Opportunity.Lead);
                    lead.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Opportunity.Lead.Fee);

                    if (oldLead.Fee != null)
                    {
                        lead.Fee = Data.Leads.LeadFee.Edit(trans, lead.Fee, currentUser);
                    }
                    else
                    {
                        lead.Fee = Data.Leads.LeadFee.Create(trans, lead.Fee, currentUser);
                    }

                    lead = Data.Leads.Lead.Edit(trans, lead, currentUser);


                    matter = Mapper.Map <Common.Models.Matters.Matter>(viewModel.Matter);
                    matter = Data.Matters.Matter.Create(trans, matter, currentUser);

                    viewModel.Opportunity.Id     = id;
                    viewModel.Opportunity.Matter = new ViewModels.Matters.MatterViewModel()
                    {
                        Id = matter.Id
                    };
                    opportunity = Mapper.Map <Common.Models.Opportunities.Opportunity>(viewModel.Opportunity);

                    // Check the probability, is it percent or decimal?
                    if (opportunity.Probability.HasValue && opportunity.Probability.Value > 1)
                    {
                        opportunity.Probability = opportunity.Probability.Value / 100;
                    }

                    opportunity = Data.Opportunities.Opportunity.Edit(trans, opportunity, currentUser);


                    // Assign Contacts

                    if (viewModel.Contact1 != null && viewModel.Contact1.Contact != null &&
                        viewModel.Contact1.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact1);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }
                    if (viewModel.Contact2 != null && viewModel.Contact2.Contact != null &&
                        viewModel.Contact2.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact2);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }
                    if (viewModel.Contact3 != null && viewModel.Contact3.Contact != null &&
                        viewModel.Contact3.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact3);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }
                    if (viewModel.Contact4 != null && viewModel.Contact4.Contact != null &&
                        viewModel.Contact4.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact4);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }
                    if (viewModel.Contact5 != null && viewModel.Contact5.Contact != null &&
                        viewModel.Contact5.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact5);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }
                    if (viewModel.Contact6 != null && viewModel.Contact6.Contact != null &&
                        viewModel.Contact6.Contact.Id.HasValue)
                    {
                        Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact6);
                        mc.Matter = matter;
                        Data.Matters.MatterContact.Create(trans, mc, currentUser);
                    }


                    trans.Commit();

                    return(RedirectToAction("Details", "Matters", new { Id = matter.Id }));
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    return(Edit(id));
                }
            }
        }