public ActionResult ManageEstimate()
        {
            //List<TextValue> category = new List<TextValue>();
            //category = UtilityManager.GetCategoriesForDropDown();

            //List<SelectListItem> list = new List<SelectListItem>();
            //list.Add(new SelectListItem { Value = "0", Text = "Choose a Category" });

            //foreach (var cat in category)
            //{
            //    list.Add(new SelectListItem { Value = cat.Value, Text = cat.Text });
            //}

            List <TextValue> lead = new List <TextValue>();

            lead = UtilityManager.GetLeadsForDropDown();

            List <SelectListItem> list1 = new List <SelectListItem>();

            list1.Add(new SelectListItem {
                Value = "0", Text = "Choose A Lead"
            });

            foreach (var leads in lead)
            {
                list1.Add(new SelectListItem {
                    Value = leads.Value, Text = leads.Text
                });
            }

            List <TextValue> client = new List <TextValue>();

            client = UtilityManager.GetClientsForDropDown();

            List <SelectListItem> list2 = new List <SelectListItem>();

            list2.Add(new SelectListItem {
                Value = "0", Text = "Choose A Client"
            });

            foreach (var clients in client)
            {
                list2.Add(new SelectListItem {
                    Value = clients.Value, Text = clients.Text
                });
            }

            //ViewBag.Category_List = list;
            ViewBag.Leads   = list1;
            ViewBag.Clients = list2;
            return(View());
        }
        public ActionResult ManageOpportunity()
        {
            session = new SessionHelper();
            List <TextValue> source = new List <TextValue>();

            source = objSetingManager.GetDropDownListing("Opportunity", "Source", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list = new List <SelectListItem>();

            list.Add(new SelectListItem {
                Value = "0", Text = "Choose a Source"
            });

            foreach (var cat in source)
            {
                list.Add(new SelectListItem {
                    Value = cat.Value, Text = cat.Text
                });
            }
            List <TextValue> stage = new List <TextValue>();

            stage = objSetingManager.GetDropDownListing("Opportunity", "Status", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list3 = new List <SelectListItem>();

            list3.Add(new SelectListItem {
                Value = "0", Text = "Choose a Stage"
            });

            foreach (var stg in stage)
            {
                list3.Add(new SelectListItem {
                    Value = stg.Value, Text = stg.Text
                });
            }

            List <TextValue> reason = new List <TextValue>();

            reason = objSetingManager.GetDropDownListing("Opportunity", "Lost Reason", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list4 = new List <SelectListItem>();

            list4.Add(new SelectListItem {
                Value = "0", Text = "Please Choose A Lost Reason"
            });

            foreach (var rsn in reason)
            {
                list4.Add(new SelectListItem {
                    Value = rsn.Value, Text = rsn.Text
                });
            }

            List <TextValue> client = new List <TextValue>();

            client = UtilityManager.GetClientsForDropDown();

            List <SelectListItem> list2 = new List <SelectListItem>();

            list2.Add(new SelectListItem {
                Value = "0", Text = "Choose A Client"
            });

            foreach (var clients in client)
            {
                list2.Add(new SelectListItem {
                    Value = clients.Value, Text = clients.Text
                });
            }

            UserManager  objUserManager = new UserManager();
            List <Users> UserList       = new List <Users>();

            UserList = objUserManager.GetUsers(session.UserSession.PIN);

            ViewBag.Users       = UserList;
            ViewBag.Client      = list2;
            ViewBag.Source_List = list;
            ViewBag.Stage_List  = list3;
            ViewBag.Reason_List = list4;
            return(View());
        }
        public ActionResult UpdateOpportunity(OpportunityModel objModel)
        {
            session = new SessionHelper();
            Opportunities    objOpportunities = new Opportunities();
            objResponse      Response         = new objResponse();
            List <TextValue> source           = new List <TextValue>();

            source = objSetingManager.GetDropDownListing("Opportunity", "Source", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list = new List <SelectListItem>();

            list.Add(new SelectListItem {
                Value = "0", Text = "Choose a Source"
            });

            foreach (var cat in source)
            {
                list.Add(new SelectListItem {
                    Value = cat.Value, Text = cat.Text
                });
            }
            List <TextValue> stage = new List <TextValue>();

            stage = objSetingManager.GetDropDownListing("Opportunity", "Status", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list3 = new List <SelectListItem>();

            list3.Add(new SelectListItem {
                Value = "0", Text = "Choose a Stage"
            });

            foreach (var stg in stage)
            {
                list3.Add(new SelectListItem {
                    Value = stg.Value, Text = stg.Text
                });
            }

            List <TextValue> reason = new List <TextValue>();

            reason = objSetingManager.GetDropDownListing("Opportunity", "Lost Reason", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list4 = new List <SelectListItem>();

            list4.Add(new SelectListItem {
                Value = "0", Text = "Please Choose A Lost Reason"
            });

            foreach (var rsn in reason)
            {
                list4.Add(new SelectListItem {
                    Value = rsn.Value, Text = rsn.Text
                });
            }

            List <TextValue> client = new List <TextValue>();

            client = UtilityManager.GetClientsForDropDown();

            List <SelectListItem> list2 = new List <SelectListItem>();

            list2.Add(new SelectListItem {
                Value = "0", Text = "Choose A Client"
            });

            foreach (var clients in client)
            {
                list2.Add(new SelectListItem {
                    Value = clients.Value, Text = clients.Text
                });
            }


            UserManager  objUserManager = new UserManager();
            List <Users> UserList       = new List <Users>();

            UserList = objUserManager.GetUsers(session.UserSession.PIN);

            try
            {
                objOpportunities.Name = objModel.Name;
                objOpportunities.Opportunity_Owner = objModel.Opportunity_Owner;
                objOpportunities.Amount            = objModel.Amount;
                objOpportunities.RealateTo_ID      = objModel.RealateTo_ID;
                if (objModel.ExpectedCloseDate != null)
                {
                    objOpportunities.ExpectedCloseDate = BAL.Helper.Helper.ConvertToDateNullable(objModel.ExpectedCloseDate, "dd/MM/yyyy");
                }

                objOpportunities.Stage          = objModel.Stage;
                objOpportunities.Type           = objModel.Type;
                objOpportunities.Source         = objModel.Source;
                objOpportunities.Probability    = objModel.Probability;
                objOpportunities.LostReason     = objModel.LostReason;
                objOpportunities.Opportunity_ID = objModel.Opportunity_ID;
                if (objModel.AssignTO_ID == 0)
                {
                    objOpportunities.AssignTO_ID = Convert.ToInt64(session.UserSession.UserId);
                }
                else
                {
                    objOpportunities.AssignTO_ID = objModel.AssignTO_ID;
                }

                objOpportunities.Description = objModel.Description;

                Response = objOpportunityManager.UpdateOpportunity(objOpportunities, session.UserSession.UserId, Convert.ToInt64(session.UserSession.PIN));

                if (Response.ErrorCode == 0)
                {
                    return(RedirectToRoute("OpportunityHome"));
                }
                else
                {
                    ViewBag.Users       = UserList;
                    ViewBag.Source_List = list;
                    ViewBag.Client      = list2;
                    ViewBag.Stage_List  = list3;
                    ViewBag.Reason_List = list4;
                    ViewBag.Error_Msg   = "There is an error in processing your request. Please try again.";
                    return(View(objModel));
                }
            }
            catch (Exception ex)
            {
                BAL.Common.LogManager.LogError("UpdateOpportunity Post", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                ViewBag.Users       = UserList;
                ViewBag.Source_List = list;
                ViewBag.Client      = list2;
                ViewBag.Error_Msg   = "There is an error in processing your request. Please try again.";
                BAL.Common.LogManager.LogError("ManageOpportunity Post", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));

                return(View(objModel));
            }
        }
        public ActionResult UpdateOpportunity(string Opportunity_ID_PK)
        {
            session = new SessionHelper();
            OpportunityModel objOpportunity = new OpportunityModel();
            objResponse      Response       = new objResponse();
            List <TextValue> source         = new List <TextValue>();

            source = objSetingManager.GetDropDownListing("Opportunity", "Source", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list = new List <SelectListItem>();

            list.Add(new SelectListItem {
                Value = "0", Text = "Choose a Source"
            });

            foreach (var cat in source)
            {
                list.Add(new SelectListItem {
                    Value = cat.Value, Text = cat.Text
                });
            }
            List <TextValue> stage = new List <TextValue>();

            stage = objSetingManager.GetDropDownListing("Opportunity", "Status", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list3 = new List <SelectListItem>();

            list3.Add(new SelectListItem {
                Value = "0", Text = "Choose a Stage"
            });

            foreach (var stg in stage)
            {
                list3.Add(new SelectListItem {
                    Value = stg.Value, Text = stg.Text
                });
            }

            List <TextValue> reason = new List <TextValue>();

            reason = objSetingManager.GetDropDownListing("Opportunity", "Lost Reason", Convert.ToInt64(session.UserSession.PIN));

            List <SelectListItem> list4 = new List <SelectListItem>();

            list4.Add(new SelectListItem {
                Value = "0", Text = "Please Choose A Lost Reason"
            });

            foreach (var rsn in reason)
            {
                list4.Add(new SelectListItem {
                    Value = rsn.Value, Text = rsn.Text
                });
            }

            List <TextValue> client = new List <TextValue>();

            client = UtilityManager.GetClientsForDropDown();

            List <SelectListItem> list2 = new List <SelectListItem>();

            list2.Add(new SelectListItem {
                Value = "0", Text = "Choose A Client"
            });

            foreach (var clients in client)
            {
                list2.Add(new SelectListItem {
                    Value = clients.Value, Text = clients.Text
                });
            }

            UserManager  objUserManager = new UserManager();
            List <Users> UserList       = new List <Users>();

            UserList = objUserManager.GetUsers(session.UserSession.PIN);
            try
            {
                Response = objOpportunityManager.ViewOpportunities(Convert.ToInt64(session.UserSession.PIN), Convert.ToInt64(Opportunity_ID_PK));
                if (Response.ErrorCode == 0)
                {
                    objOpportunity.Opportunity_ID         = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0]["Opportunity_ID_Auto_PK"]);
                    objOpportunity.Name                   = Response.ResponseData.Tables[0].Rows[0]["Name"].ToString();
                    objOpportunity.Amount                 = Response.ResponseData.Tables[0].Rows[0]["Amount"].ToString();
                    objOpportunity.RelateTo_Name          = Response.ResponseData.Tables[0].Rows[0]["RealtedTo"].ToString();
                    objOpportunity.RealateTo_ID           = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0]["Relate_To_ID_FK"]);
                    objOpportunity.RelateTo_ContactNo     = Response.ResponseData.Tables[0].Rows[0]["RelateToContactNo"].ToString();
                    objOpportunity.RelateTo_Email         = Response.ResponseData.Tables[0].Rows[0]["RelateToContactEmail"].ToString();
                    objOpportunity.Stage                  = Response.ResponseData.Tables[0].Rows[0]["Stage"].ToString();
                    objOpportunity.Type                   = Response.ResponseData.Tables[0].Rows[0]["Type"].ToString();
                    objOpportunity.Probability            = Response.ResponseData.Tables[0].Rows[0]["Probability"].ToString();
                    objOpportunity.AssignTO_ID            = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0]["AssignTo"]);
                    objOpportunity.AssignTO_Name          = Response.ResponseData.Tables[0].Rows[0]["AssignToName"].ToString();
                    objOpportunity.Description            = Response.ResponseData.Tables[0].Rows[0]["Description"].ToString();
                    objOpportunity.Source                 = Response.ResponseData.Tables[0].Rows[0]["Source"].ToString();
                    objOpportunity.Opportunity_Owner      = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0]["CreatedBy"]);
                    objOpportunity.Opportunity_Owner_Name = Response.ResponseData.Tables[0].Rows[0]["OwnerName"].ToString();
                    objOpportunity.LostReason             = Response.ResponseData.Tables[0].Rows[0]["LostReason"].ToString();

                    ViewBag.Users       = UserList;
                    ViewBag.Source_List = list;
                    ViewBag.Client      = list2;
                    ViewBag.Stage_List  = list3;
                    ViewBag.Reason_List = list4;
                    return(View(objOpportunity));
                }
                else
                {
                    ViewBag.Users       = UserList;
                    ViewBag.Source_List = list;
                    ViewBag.Client      = list2;
                    ViewBag.Stage_List  = list3;
                    ViewBag.Reason_List = list4;
                    return(View(objOpportunity));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Users       = UserList;
                ViewBag.Source_List = list;
                ViewBag.Client      = list2;
                ViewBag.Stage_List  = list3;
                ViewBag.Reason_List = list4;
                BAL.Common.LogManager.LogError("UpdateOpportunity Get Method", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                return(View(objOpportunity));
            }
        }
        public ActionResult ManageEstimate(EstimateModel model)
        {
            //List<TextValue> category = new List<TextValue>();
            //category = UtilityManager.GetCategoriesForDropDown();

            //List<SelectListItem> list = new List<SelectListItem>();
            //list.Add(new SelectListItem { Value = "0", Text = "Choose a Category" });

            //foreach (var cat in category)
            //{
            //    list.Add(new SelectListItem { Value = cat.Value, Text = cat.Text });
            //}

            List <TextValue> lead = new List <TextValue>();

            lead = UtilityManager.GetLeadsForDropDown();

            List <SelectListItem> list1 = new List <SelectListItem>();

            list1.Add(new SelectListItem {
                Value = "0", Text = "Choose A Lead"
            });

            foreach (var leads in lead)
            {
                list1.Add(new SelectListItem {
                    Value = leads.Value, Text = leads.Text
                });
            }

            List <TextValue> client = new List <TextValue>();

            client = UtilityManager.GetClientsForDropDown();

            List <SelectListItem> list2 = new List <SelectListItem>();

            list2.Add(new SelectListItem {
                Value = "0", Text = "Choose A Client"
            });

            foreach (var clients in client)
            {
                list2.Add(new SelectListItem {
                    Value = clients.Value, Text = clients.Text
                });
            }

            objResponse Response = new objResponse();

            try
            {
                session = new SessionHelper();
                Project.Entity.Estimate objEstimate = new Entity.Estimate();
                objEstimate.Date         = BAL.Helper.Helper.ConvertToDateNullable(model.Date, "dd/MM/yyyy");
                objEstimate.Lead_ID_Fk   = model.Lead_ID_Fk;
                objEstimate.Client_ID_Fk = model.Client_ID_Fk;
                objEstimate.Priority     = model.Priority;
                objEstimate.Category     = model.Category;
                objEstimate.Language     = model.Language;
                objEstimate.AssignTo     = model.AssignTo;
                objEstimate.Requirment   = model.Requirment;

                Response = objEstimateManager.AddEstimate(objEstimate, session.UserSession.Username);

                if (Response.ErrorCode == 0)
                {
                    long Estimate_ID = Convert.ToInt64(Response.ResponseData.Tables[0].Rows[0][0]);
                    // Uploading Requirment Document and Saving Details to DB
                    try
                    {
                        foreach (HttpPostedFileBase file in model.UploadedDoc)
                        {
                            if (file != null)
                            {
                                string filename = System.IO.Path.GetFileName(file.FileName);
                                Debug.WriteLine("file name is: " + filename);
                                string[] fileext = filename.Split('.');

                                // string newFileName = "EST0" + Estimate_ID + "_" + filename + "." + fileext[1];
                                string newFileName = "EST0" + Estimate_ID + "_" + filename;
                                string newFilePath = Server.MapPath(ConfigurationManager.AppSettings["Estimation_Req_Dir"]) + newFileName;
                                file.SaveAs(newFilePath);

                                if (filename != "")
                                {
                                    Response = objEstimateManager.AddEstimationUpload(Estimate_ID, filename, session.UserSession.Username, 0);
                                    if (Response.ErrorCode == 0)
                                    {
                                        return(RedirectToRoute("EstimateHome"));
                                    }
                                    else
                                    {
                                        if (System.IO.File.Exists(newFilePath))
                                        {
                                            System.IO.File.Delete(newFilePath);
                                        }
                                        ViewBag.Error_Msg = "Unable To Upload Document. Please go to update Estimate and upload document again.";
                                        //  ViewBag.Category_List = list;
                                        ViewBag.Leads   = list1;
                                        ViewBag.Clients = list2;
                                        return(View());
                                    }
                                }
                            }
                            else
                            {
                                return(RedirectToRoute("EstimateHome"));
                            }
                        }

                        // If we got this far , than there is something wrong. Redirect to LeadsHome Page
                        return(RedirectToRoute("EstimateHome"));
                    }
                    catch (Exception ex)
                    {
                        ViewBag.Error_Msg = ex.Message.ToString();
                        // ViewBag.Category_List = list;
                        ViewBag.Leads   = list1;
                        ViewBag.Clients = list2;
                        return(View());
                    }
                }
                else
                {
                    ViewBag.Error_Msg = Response.ErrorMessage;
                    //  ViewBag.Category_List = list;
                    ViewBag.Leads   = list1;
                    ViewBag.Clients = list2;
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ViewBag.Error_Msg = Response.ErrorMessage;
                // ViewBag.Category_List = list;
                ViewBag.Leads   = list1;
                ViewBag.Clients = list2;
                BAL.Common.LogManager.LogError("ManageEstimate Post Method", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                return(View());
            }
        }