public HttpResponseMessage ResellerUsers(int org_Id)
        {
            //Reseller OrgID
            var resellerusers = _IOrgService.GetOrg(org_Id).OrgUsers.Where(q => q.Type == "Primary" || q.Type == null).Select(p => new { id = p.UserId, name = p.User.Per.LastName + ", " + p.User.Per.FirstName });

            return(Request.CreateResponse(HttpStatusCode.OK, resellerusers));
        }
        public HttpResponseMessage CustomerCurrentMonthVolume()
        {
            var resellerId = int.Parse(Request.Headers.GetValues("orgId").FirstOrDefault());

            var finalwork = _OrgService.GetOrg(resellerId).OrgOrgs.Select(s =>
                                                                          new {
                Id         = s.Org1.Id,
                Name       = s.Org1.Name,
                Commitment = s.Org1.WkflowInstances.Where(w => w.WkflowDef.Code == "SOW").Count() > 0 ? s.Org1.WkflowInstances.Where(w => w.WkflowDef.Code == "SOW").FirstOrDefault().SowWkflows.Where(so => so.InactiveDate == null).FirstOrDefault().MonthlyCommitment : 0,
                Revenue    = GetRevenue(s.Org1)
            });

            if (finalwork == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return(Request.CreateResponse <IEnumerable <object> >(HttpStatusCode.OK, finalwork));
        }
Exemple #3
0
        public HttpResponseMessage OrgList()
        {
            List <dynamic> orgs   = new List <dynamic>();
            int            org_id = int.Parse(Request.Headers.GetValues("orgId").FirstOrDefault());

            if (org_id == 1)
            {
                orgs.AddRange(_IOrgService.GetOrgs().Where(o => o.Id != 1).Select(p => new { Id = p.Id, Name = p.Name }).ToList());
            }
            else
            {
                var reseller = _IOrgService.GetOrg(org_id);
                orgs.Add(new { Id = reseller.Id, Name = reseller.Name });
                orgs.AddRange(_IOrgorgService.GetOrgorgs().Where(o => o.OrgId == org_id).Select(p => new { Id = p.Org1.Id, Name = p.Org1.Name }));
            }


            return(Request.CreateResponse(HttpStatusCode.OK, orgs));
        }
        public HttpResponseMessage Invite(InviteRequestInfo customer)
        {
            try
            {
                if (customer.ParentId == null)
                {
                    customer.ParentId = 1;
                }
                int?org_id = int.Parse(Request.Headers.GetValues("orgId").FirstOrDefault());

                var user = _IUserService.GetUsers().Where(p => p.UserName == customer.Email);
                if (user.Count() > 0)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Customer Email already exists in our system"));
                }
                int userID     = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault());
                var excustomer = _IOrgService.GetOrgs().Where(p => p.Name == customer.Name);

                var curDateTime = DateTime.UtcNow;

                if (excustomer.Count() <= 0)
                {
                    OrgTyp custType;
                    if (customer.TypeId == 6)
                    {
                        custType = _IOrgtypService.GetOrgtyps().Where(p => p.TypCd == "CUST").FirstOrDefault();
                    }
                    else
                    {
                        custType = _IOrgtypService.GetOrgtyps().Where(p => p.TypCd == "RESE").FirstOrDefault();
                    }

                    var cguid = Guid.NewGuid();

                    Org newOrg = new Org
                    {
                        Name           = customer.Name,
                        CreateDate     = DateTime.UtcNow,
                        CreatedUserId  = userID,
                        ModifiedDate   = DateTime.UtcNow,
                        ModifiedUserId = userID,
                        InviteDate     = DateTime.UtcNow,
                        OrgTypId       = custType.Id,
                        soKey          = cguid,
                    };


                    var parentOrg = _IOrgService.GetOrg(customer.ParentId);


                    if (customer.TypeId == 6)
                    {
                        OrgCust newCustomer = new OrgCust()
                        {
                            Org = newOrg,
                        };
                        _IOrgcustService.AddOrgcust(newCustomer);
                    }
                    else
                    {
                        OrgReseller newReseller = new OrgReseller()
                        {
                            Org = newOrg,
                        };
                        _IOrgresellerService.AddOrgreseller(newReseller);
                    }

                    _IOrgorgService.AddOrgorg(new OrgOrg()
                    {
                        Org = parentOrg, AssociatedOrgId = newOrg.Id
                    });

                    var orgTypeStatus = _IOrgtyporgstatusService.GetOrgtyporgstatus().Where(p => p.OrgTyp.TypCd == "CUST" && p.OrgStatus.StatusCd == "INVITED").FirstOrDefault();

                    newOrg.OrgStatusHists.Add(new OrgStatusHist()
                    {
                        Org            = newOrg,
                        OrgTypOrgStatu = orgTypeStatus,
                        CreateDate     = DateTime.UtcNow
                    });


                    var guid = Guid.NewGuid();

                    var newuser = new User()
                    {
                        UserName = customer.Email, Password = "", Per = new Per()
                        {
                            FirstName = "", LastName = "", MiddleName = "", Createdate = curDateTime
                        }, CreateDate = curDateTime, IsProcess = false, soKey = guid, CreateUserId = userID, InviteDate = curDateTime, IsSuperAdmin = false
                    };

                    var authrole = _IAuthrolService.GetAuthrols().Where(p => p.Name == "Customer Admin").FirstOrDefault();

                    newuser.UserAuthRols.Add(new UserAuthRol()
                    {
                        User = newuser, AuthRol = authrole
                    });

                    newuser.PortUsers.Add(new PortUser()
                    {
                        User = newuser, PortId = 1
                    });

                    newuser.OrgUsers.Add(new OrgUser()
                    {
                        User = newuser, Org = newOrg, Type = "Primary"
                    });


                    var Singupmessagetemp = _IMessagetemplateService.GetMessagetemplates().Where(p => p.Name == "Signup").FirstOrDefault();

                    var messagetemp = _IMessagetemplateService.GetMessagetemplates().Where(p => p.Name == "InviteUser").FirstOrDefault();

                    var baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority);

                    string Singupurl;

                    if (customer.TypeId == 6)
                    {
                        Singupurl = baseUrl + "/cust/" + cguid.ToString() + "/signup";
                    }
                    else
                    {
                        Singupurl = baseUrl + "/resel/" + cguid.ToString() + "/signup";
                    }

                    if (Singupmessagetemp != null)
                    {
                        newuser.MessageUsers.Add(new MessageUser()
                        {
                            User = newuser, DeliveryMethodId = 1, Message = new Message()
                            {
                                CreateDate = curDateTime, HeaderText = Singupmessagetemp.HeaderText, MessageBody = string.Format(Singupmessagetemp.TemplateText, Singupurl)
                            }
                        });
                    }

                    _IUserService.AddUser(newuser);
                }
                else
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Customer Name already exists in our system"));
                }
            }
            catch (Exception e)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            return(Request.CreateResponse <bool>(HttpStatusCode.OK, true));
        }
Exemple #5
0
        public HttpResponseMessage Create(SOWDTO requestInfo)
        {
            try
            {
                var SOWWorkflow =
                    _IWkflowdefService.GetWkflowdefs().Find(p => p.Code == "SOW");

                int userID = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault());

                var CreatedstatusID = SOWWorkflow.WkflowDefWkflowStats.Where(p => p.WkflowStat.Code.Contains("Created")).FirstOrDefault().WkflowStatId;

                int?orgid;

                if (requestInfo.OrgId != null)
                {
                    orgid = requestInfo.OrgId;
                }
                else
                {
                    orgid = _IUserService.GetUser(userID).OrgUsers.Where(p => p.Type == null || p.Type.Contains("Primary")).FirstOrDefault().OrgId;
                }


                var org      = _IOrgService.GetOrg((int)orgid);
                int?ccuserid = org.OrgUsers.Where(p => p.Type == "CustomerCare").Count() > 0 ? (int?)org.OrgUsers.Where(p => p.Type == "CustomerCare").FirstOrDefault().UserId : null;

                var WKflow = new WkflowInstance()
                {
                    Org              = org,
                    CreateDate       = DateTime.UtcNow,
                    DateLastMaint    = DateTime.UtcNow,
                    WkflowDef        = SOWWorkflow,
                    UserId           = userID,
                    CurrWkflowStatId = CreatedstatusID,
                    CCUserId         = ccuserid
                };

                var hist = new WkflowStepHist
                {
                    CreateDate    = DateTime.UtcNow,
                    DateLastMaint = DateTime.UtcNow,
                    WkflowStatId  = CreatedstatusID,
                    CreatedUserId = userID
                };
                var sowWkflow = new SowWkflow
                {
                    WkflowInstance    = WKflow,
                    ProjectName       = requestInfo.ProjectName,
                    Amend             = 0,
                    EffectiveDate     = DateTime.UtcNow,
                    LastReviewDate    = DateTime.UtcNow,
                    NextReviewDate    = DateTime.UtcNow.AddMonths(6),
                    MonthlyCommitment = requestInfo.Commitment
                };

                foreach (var attrib in requestInfo.Attribs)
                {
                    //var newatt = new SowWklowSowAttribute() { SowAttributeId = attrib.Id, SowWkflow = sowWkflow };
                    //newatt.SowAttributeValueHists.Add(new SowAttributeValueHist() { SowWklowSowAttribute = newatt, EffectiveDate = DateTime.UtcNow, SowAttributeId = attrib.Id, Qty = attrib.Qty, UnitPrice = attrib.UnitPrice, ExtendedPrice = attrib.ExtendedPrice });
                    //sowWkflow.SowWklowSowAttributes.Add(newatt);

                    var newatt = new SowWklowSowAttribute()
                    {
                        SowAttributeId = attrib.Id, SowWkflow = sowWkflow
                    };
                    newatt.SowAttributeValueHists.Add(new SowAttributeValueHist()
                    {
                        SowWklowSowAttribute = newatt, EffectiveDate = DateTime.UtcNow, Qty = attrib.Qty, UnitPrice = attrib.UnitPrice, ExtendedPrice = attrib.ExtendedPrice
                    });
                    sowWkflow.SowWklowSowAttributes.Add(newatt);
                }

                foreach (var docSetup in requestInfo.DocSetups)
                {
                    sowWkflow.SowWkflowDocSetups.Add(new SowWkflowDocSetup()
                    {
                        DocumentName = docSetup.Name, SowWkflow = sowWkflow, NoIndexes = docSetup.NoIndexes, NoDataFields = docSetup.NoDataFields, SLA = docSetup.SLA, Volume = docSetup.CommitVolume, ListPrice = docSetup.UnitPrice
                    });
                }

                if (requestInfo.RebateOverride)
                {
                    var reseller = org.OrgOrgs1.FirstOrDefault().Org.OrgReseller;
                    sowWkflow.SOWWkflowOrgResellerDiscOverrides.Add(new SOWWkflowOrgResellerDiscOverride {
                        Discount = requestInfo.ResellerRebate, EffectiveDate = DateTime.UtcNow, SowWkflow = sowWkflow, OrgReseller = reseller
                    });
                }

                WKflow.SowWkflows.Add(sowWkflow);
                WKflow.WkflowStepHists.Add(hist);
                _IWkflowinstanceService.AddWkflowinstance(WKflow);
                return(Request.CreateResponse <bool>(HttpStatusCode.OK, true));
            }
            catch (Exception e)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
        }
Exemple #6
0
        public HttpResponseMessage Invite(UserDTO userDTO)
        {
            try
            {
                var user = _IUserService.GetUsers().Where(p => p.UserName == userDTO.userName);
                if (user.Count() <= 0)
                {
                    int userID = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault());

                    var curDateTime = DateTime.UtcNow;

                    var guid = Guid.NewGuid();

                    var newuser = new User()
                    {
                        UserName = userDTO.userName, Password = "", Per = new Per()
                        {
                            FirstName = userDTO.firstName, LastName = userDTO.lastName, MiddleName = userDTO.middleName, Createdate = curDateTime
                        }, CreateDate = curDateTime, IsProcess = false, soKey = guid, CreateUserId = userID, InviteDate = curDateTime, IsSuperAdmin = false
                    };

                    var org = _IOrgService.GetOrg(userDTO.orgId);

                    AuthRol authrole;

                    if (org.OrgTyp.TypCd == "TENA")
                    {
                        authrole = _IAuthrolService.GetAuthrol(2);
                    }
                    else if (org.OrgTyp.TypCd == "RESE")
                    {
                        authrole = _IAuthrolService.GetAuthrol(4);
                    }
                    else
                    {
                        authrole = _IAuthrolService.GetAuthrol(3);
                    }

                    newuser.UserAuthRols.Add(new UserAuthRol()
                    {
                        User = newuser, AuthRol = authrole
                    });
                    newuser.PortUsers.Add(new PortUser()
                    {
                        User = newuser, PortId = 1
                    });
                    newuser.OrgUsers.Add(new OrgUser()
                    {
                        User = newuser, Org = org
                    });

                    var messagetemp = _IMessagetemplateService.GetMessagetemplates().Where(p => p.Name == "InviteUser").FirstOrDefault();

                    var baseUrl = Request.RequestUri.GetLeftPart(UriPartial.Authority);

                    var url = baseUrl + "/user/" + guid.ToString() + "/signup";

                    if (messagetemp != null)
                    {
                        newuser.MessageUsers.Add(new MessageUser()
                        {
                            User = newuser, DeliveryMethodId = 1, Message = new Message()
                            {
                                CreateDate = curDateTime, HeaderText = messagetemp.HeaderText, MessageBody = string.Format(messagetemp.TemplateText, url)
                            }
                        });
                    }

                    _IUserService.AddUser(newuser);
                }
                else
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "UserName Needs to be Unique"));
                }
            }
            catch (Exception e)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            return(Request.CreateResponse <bool>(HttpStatusCode.OK, true));
        }