示例#1
0
        public ActionResult Confirm(int?companyId)
        {
            try
            {
                InvitationCompanyServices invServ = new InvitationCompanyServices();
                InvitationCompanyModel    inv     = UserPerson.InvitationsCompanies.Find(x => x.CompanyId == companyId);
                inv.Status           = 1;
                UserPerson.CompanyId = inv.CompanyId;
                var result = invServ.ConfirmInvitation(inv, UserPerson);
                if (result == null || result.Status != Status.Success)
                {
                    throw new Exception(string.Format("{0}: {1}", localResource.txt_company_error_delete, result.Message));
                }
                SessionWeb.User.CompanyId = inv.CompanyId;
                foreach (var i in UserPerson.InvitationsCompanies)
                {
                    if (i.CompanyInvitationId == inv.CompanyInvitationId)
                    {
                        continue;
                    }
                    i.Status = 2;
                    invServ.InsUpd(i);
                }
                return(Json(result));
            }
            catch (Exception ex)
            {
                Response.StatusCode        = (int)HttpStatusCode.BadRequest;
                Response.StatusDescription = ex.Message;

                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
示例#2
0
        private List <InvitationCompanyModel> GetInvitationsCompany(DatatableModel dt, InvitationCompanyModel filters)
        {
            filters.CompanyId = UserCompanyId;
            InvitationCompanyServices service = new InvitationCompanyServices();
            PagerModel pager = dt.ToPager();

            return(service.Get(pager, filters));
        }
示例#3
0
        private List <InvitationCompanyModel> GetInvitationsCompany(string email)
        {
            InvitationCompanyModel filters = new InvitationCompanyModel();

            InvitationCompanyServices service = new InvitationCompanyServices();

            var collection = service.Get(new PagerModel(0, 10, "", "", email), filters);

            return(collection);
        }
示例#4
0
        public ActionResult Create(CompanyModel data)
        {
            try
            {
                if (HasCompany())
                {
                    return(RedirectToAction("Index"));
                }

                if (ModelState.IsValid)
                {
                    PersonServices PersonServ = new PersonServices();
                    var            userId     = (int)SessionWeb.User.UserId;
                    var            person     = PersonServ.getFirstUserPerson(new UserPersonModel()
                    {
                        UserId = userId
                    }).ToPerson();
                    CompanyServices cs = new CompanyServices();
                    CompanyModel    cm = new CompanyModel()
                    {
                        CompanyName = data.CompanyName,
                        RFC         = data.RFC,
                        Address     = data.Address,
                        PhoneNumber = data.PhoneNumber,
                        Email       = data.Email
                    };
                    var result = cs.AddCompany(cm, person);
                    if (result.Status != Status.Success)
                    {
                        throw new Exception(string.Format("{0}: {1}", localResource.txt_company_error_saved, result.Message));
                    }
                    SessionWeb.User.CompanyId = ((CompanyModel)result.Data).CompanyId;
                    InvitationCompanyServices invServ = new InvitationCompanyServices();
                    foreach (var i in UserPerson.InvitationsCompanies)
                    {
                        i.Status = 2;
                        invServ.InsUpd(i);
                    }
                    return(Json(result));
                }
                return(Json(new RequestResult <object>()
                {
                    Status = Status.Error, Message = localResource.txt_company_error_saved
                }));
            }
            catch (Exception ex)
            {
                Response.StatusCode        = (int)HttpStatusCode.BadRequest;
                Response.StatusDescription = ex.Message;

                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
                //return Json(new RequestResult<object>() { Status = Status.Error, Message = ex.Message });
            }
        }
示例#5
0
        private bool HasInvitation(string email, int?companyId)
        {
            InvitationCompanyModel filters = new InvitationCompanyModel()
            {
                Email = email, CompanyId = companyId
            };
            DatatableModel dt = new DatatableModel()
            {
                iColumns       = 5,
                iDisplayLength = 10,
                iDisplayStart  = 0,
                iSortCol_0     = 3,
                iSortingCols   = 1,
                iTotalRecords  = 0,
                sSearch        = email
            };
            InvitationCompanyServices service = new InvitationCompanyServices();
            PagerModel pager      = dt.ToPager();
            var        collection = service.Get(pager, filters).FirstOrDefault();

            HasRejectedInvitation = (collection != null && collection.Status == 2);
            return(collection != null);
        }
示例#6
0
        public ActionResult DeleteInvivtation(int id, string email)
        {
            try
            {
                PersonServices persnServ = new PersonServices();
                var            p         = persnServ.getFirstUserPerson(new UserPersonModel()
                {
                    Email = email
                });
                InvitationCompanyServices cs = new InvitationCompanyServices();
                InvitationCompanyModel    cm = new InvitationCompanyModel()
                {
                    CompanyInvitationId = id,
                    From = p.PersonId
                };
                PagerModel pager       = new PagerModel(0, 100, "", "");
                var        invitations = cs.Get(pager, cm);
                cm = invitations.Find(x => x.To == p.PersonId);
                var result = (p != null && p.CompanyId == UserCompanyId) ? cs.RemoveCompanyInvitation(cm, p.ToPerson()) : cs.Del(cm);
                if (p != null && cm.Status != 2)
                {
                    SendNotificationsInvite(p.PersonId, 3);
                }
                if (result.Status != Status.Success)
                {
                    throw new Exception(string.Format("{0}: {1}", localResource.txt_error_remove_invitation, result.Message));
                }
                return(Json(result));
            }
            catch (Exception ex)
            {
                Response.StatusCode        = (int)HttpStatusCode.BadRequest;
                Response.StatusDescription = ex.Message;

                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
示例#7
0
        public ActionResult Invitate(string mails)
        {
            try
            {
                if (string.IsNullOrEmpty(mails.Trim()))
                {
                    return(Json(new RequestResult <object>()
                    {
                        Status = Status.Warning, Message = localResource.txt_invitation_empty
                    }));
                }

                InvitationCompanyServices invServ   = new InvitationCompanyServices();
                PersonServices            persnServ = new PersonServices();
                string[] mailsS = mails.Split(new Char[] { ',' });
                RequestResult <object> result = new RequestResult <object>()
                {
                    Status = Status.Success
                };
                string mailsNoSend = string.Empty;

                foreach (var mail in mailsS)
                {
                    var mailT = mail.Trim();
                    //Enviar invitación
                    if (!HasInvitation(mailT, UserCompanyId))
                    {
                        //si tiene CUENTA
                        UserPersonModel p = null;
                        if ((p = persnServ.getFirstUserPerson(new UserPersonModel()
                        {
                            Email = mailT
                        })) != null)
                        {
                            if (p.CompanyId != null)
                            {
                                mailsNoSend += "," + mail;
                                continue;
                            }

                            SendNotificationsInvite(p.PersonId, 2);
                        }
                        SendMailInvitation(mailT);
                        result = invServ.InsUpd(new InvitationCompanyModel()
                        {
                            CompanyId = UserCompanyId,
                            From      = UserPerson.PersonId,
                            To        = p == null ? null : p.PersonId,
                            CreatedAt = DateTime.Now,
                            Status    = 0,
                            Email     = mailT
                        });
                    }
                    if (HasRejectedInvitation)
                    {
                        mailsNoSend += "," + mail;
                    }
                }
                if (result == null || result.Status != Status.Success)
                {
                    throw new Exception(string.Format("{0}: {1}", localResource.txt_error_invite, result.Message));
                }
                if (!string.IsNullOrEmpty(mailsNoSend))
                {
                    return(Json(new RequestResult <object>()
                    {
                        Status = Status.Warning, Message = string.Format(localResource.txt_invitation_has_company, mailsNoSend.Substring(1))
                    }));
                }

                return(Json(result));
            }
            catch (Exception ex)
            {
                Response.StatusCode        = (int)HttpStatusCode.BadRequest;
                Response.StatusDescription = ex.Message;

                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }