//
        // GET: /Component/
        public ActionResult Index(int? componentid)
        {
           var myComponentDataUtil = new ComponentDataUtil();
           var myComponents = new Components();
           var selectedComponent = new Component();
           var userCommentsList = new List<MvcHtmlString>();
           var sortedList = new List<Component>();
           var emptylist = new List<MvcHtmlString>();
           LoanDataUtil ldu = new LoanDataUtil();
           myComponents._LoanInformations = ldu.GetAllLoanInformation();

            foreach (var component in myComponentDataUtil.GetAllComponents())
            {         
                myComponents._components.Add(component);
            }

            foreach (var component in myComponents._components)
            {
                if (component.ComponentID == componentid)
                    selectedComponent = component;
            }

            foreach (var component in myComponents._components)
            {
                if (selectedComponent.ComponentName==component.ComponentName)
                    sortedList.Add(component);
            }

            foreach (var component in sortedList)
            {
                if (!String.IsNullOrEmpty(component.UserComment))
                userCommentsList.Add(MvcHtmlString.Create(HttpUtility.HtmlEncode(component.UserComment + "\n\n Skrevet omkring komponent nummer: " + component.ComponentNumber).Replace("\n", "<br />")));
                
            }
            if (userCommentsList.Count < 1)
            {
                emptylist.Add(MvcHtmlString.Create(HttpUtility.HtmlEncode("Ingen kommentarer fundet")));
                ViewData["UserComments"] = emptylist;
            }
            else
            {
                ViewData["UserComments"] = userCommentsList.Distinct().ToList();
            }

            if (sortedList.Count > 0)
            {

                
               
                ViewData["AvailableQuantity"] = myComponents.GetAvailableQuantity(sortedList[0].ComponentName);

                return View(sortedList[0]); 
            }

            ViewData["AvailableQuantity"] = 0;
           
            return View(); 
        }
        public ActionResult Remove(Component component)
        {
            var loanDataUtil = new LoanDataUtil();
            var loanInfo = loanDataUtil.GetLoanInformation(component);

            if (Session["User"] == null)
                return RedirectToAction("Index", "Home");

            if (Session["User"].ToString() == loanInfo.ReservationID)
            {
                loanDataUtil.RemoveReservation(component.ComponentID); 
            }
            
            return RedirectToAction("Reserve","Account");
        }
     //[AllowAnonymous]
     public ActionResult Reserve()
     {
         var myLoanDataUtil = new LoanDataUtil();
         var myloanedComponents = new Components();
         var myreservedComponents = new Components();
         if (Session["User"] == null)
             return RedirectToAction("Index","Home");
         // Tjekker om der er indtastet en s�gning, hvis ja, hentes en komponentliste med de indtastede tags
         if (!String.IsNullOrEmpty(Session["User"].ToString()))
         {
             var studieNr =Session["User"].ToString();

             foreach (var component in myLoanDataUtil.GetLoanedComponentFromStudentId(studieNr))
             {
                 myloanedComponents._components.Add(component);
             }

             foreach (var component in myLoanDataUtil.GetReservedComponentFromStudentId(studieNr))
             {
                 myreservedComponents._components.Add(component);
             }

             var SortedReserveList = myreservedComponents._components.OrderBy(c => c.ComponentName).ToList();
             var SortedLoanList= myloanedComponents._components.OrderBy(c => c.ComponentName).ToList();
             var SortedReserveLoanInformationList = new List<string>();
             var SortedLoanedLoanInformationList = new List<string>();


             ViewData["ReservedComponents"] = SortedReserveList;
             ViewData["LoanedComponents"] = SortedLoanList;

             foreach (var component in SortedReserveList)
             {
                 SortedReserveLoanInformationList.Add(myLoanDataUtil.GetLoanInformation(component).ReservationDate.Value.Value.ToShortDateString());
             }
             foreach (var component in SortedLoanList)
             {
                 SortedLoanedLoanInformationList.Add(myLoanDataUtil.GetLoanInformation(component).ReturnDate.Value.Value.ToShortDateString());
             }

             ViewData["ReservedLoanInformation"] = SortedReserveLoanInformationList;
             ViewData["LoanedLoanInformation"] = SortedLoanedLoanInformationList;
         }

         return View();
     }
        public List <Component> LoanTimeExceeded()
        {
            List <Component> nlist = GetAllComponents();

            List <Component> compList = new List <Component>();

            foreach (var comp in nlist)
            {
                LoanDataUtil    loanDatautil = new LoanDataUtil();
                LoanInformation lf           = loanDatautil.GetLoanInformation(comp);

                if (lf.ReturnDate != DateTime.MinValue && lf.LoanDate != DateTime.MinValue)
                {
                    if (lf.ReturnDate < DateTime.Now)
                    {
                        compList.Add(comp);
                    }
                }
            }

            return(compList);
        }
Beispiel #5
0
        //
        // GET: /Home/
        public ActionResult Index(string searchString, string category, int? page)
        {
           var componentsPerPage = new int?();
           var mySearcher = new Searcher();
           var myComponentDataUtil = new ComponentDataUtil();
           var myComponents = new Components();
           var emptyComponent = new Component();
           var listOfQuantity = new List<int>();
           LoanDataUtil ldu = new LoanDataUtil();
           myComponents._LoanInformations = ldu.GetAllLoanInformation();

            emptyComponent.ComponentName="Ingen Komponenter Fundet";
            componentsPerPage = 20;

           
            // Tjekker om der er indtastet en s�gning, hvis ja, hentes en komponentliste med de indtastede tags
            if (!String.IsNullOrEmpty(searchString))
            {
                var SearchTags = mySearcher.SplitString(searchString);
                myComponents._components.AddRange(myComponentDataUtil.GetComponents(SearchTags));
            }
            else
            {

            //Tjekker om man har trykket p� en kategori, hvis ja, hentes en komponentliste med den kategori
                if (!String.IsNullOrEmpty(category))
                {
                    foreach (var component in myComponentDataUtil.GetAllComponents())
                    {
                        if (component.Category == category)
                            myComponents._components.Add(component);
                    }
                }
                else
                {
                    myComponents._components.AddRange(myComponentDataUtil.GetAllComponents());
                }
                
                
            }

           

            //Sorterer listen med komponenter, s� den er i alfabetisk r�kkef�lge og komponenterne kun ankommer en gang.
            var sortedList = myComponents._components.DistinctBy(c => c.ComponentName).OrderBy(c => c.ComponentName).ToList();

            //Opretter liste med alle kategorier

            var listOfCategories = myComponents.GetAllCategories();

            //S�tter listen med kategorier i alfabetisk r�kkef�lge
            listOfCategories.Sort();

            //Opretter liste til hvis der ikke eksisterer nogen kategorier
            var noneFound = new List<string> { "Ingen kategorier fundet" };

            if (listOfCategories.Count != 0)
                ViewData["Categories"] = listOfCategories;
            else
                ViewData["Categories"] = noneFound;

            //Udregner hvor mange sider, der skal v�re p� hjemmesiden
            ViewData["NumberOfPages"] = (sortedList.Count + componentsPerPage - 1) / componentsPerPage;

            //Udregner hvor mange der er af hver komponent type(taget ud af Componentname), l�gger det derefter over i en ny liste

            foreach (var component in sortedList)
            {
                mySearcher= new Searcher();
                listOfQuantity.Add(myComponents.GetAvailableQuantity(component.ComponentName));
                component.ComponentInfo = mySearcher.TruncateAtWord(component.ComponentInfo, 300);
            }
            

            //Hvis dette tjek g�r igennem, er der ikke nok komponenter til at vise den �nskede side
            if (((componentsPerPage * page.GetValueOrDefault())) >= sortedList.Count || page < 0)
            {
                myComponents._components.Clear();
                myComponents._components.Add(emptyComponent);
                listOfQuantity.Clear();
                listOfQuantity.Add(0);
                return View(myComponents._components);
            }

            ViewData["AvailableQuantity"] = listOfQuantity;
                
            //Hvis dette tjek g�r igennem har man komponenter til overs, men ikke nok til at lave en "hel" side
            if(((componentsPerPage*page.GetValueOrDefault())+componentsPerPage)>sortedList.Count)
                return View(sortedList.GetRange((page * componentsPerPage).GetValueOrDefault(), sortedList.Count - (componentsPerPage * page).GetValueOrDefault()));
            //Returnerer componentsPerPage, startende fra den side man er kommet til
                return View(sortedList.GetRange(((page * componentsPerPage).GetValueOrDefault()), componentsPerPage.GetValueOrDefault()));
        }
        public List<Component> LoanTimeExceeded()
        {
            List<Component> nlist = GetAllComponents();

            List<Component> compList = new List<Component>();

            foreach (var comp in nlist)
            {
                LoanDataUtil loanDatautil = new LoanDataUtil();
                LoanInformation lf = loanDatautil.GetLoanInformation(comp);

                if (lf.ReturnDate != DateTime.MinValue && lf.LoanDate != DateTime.MinValue)
                {
                    if (lf.ReturnDate < DateTime.Now)
                        compList.Add(comp);
                }
            }

            return compList;
        }
        // bool CreateComponent(Component cp)

        public bool CreateComponent(Component cp)
        {
            try
            {
                // Open the connection
                _conn.Open();

                // prepare command string using paramters in string and returning the given identity

                string insertStringParam =
                    @"INSERT INTO [Component] (ComponentNumber, SerieNr, ComponentName, ComponentInfo, Category, Datasheet, Image, OwnerID, ReservationID)
                                                    OUTPUT INSERTED.ComponentID
                                                VALUES (@Data1, @Data2,@Data3,@Data4,@Data5,@Data6,@Data7,@Data8, @Data9)";
                //Alternative //    ; SELECT SCOPE_IDENTITY()";

                object componentInfoParam = DBNull.Value;
                object categoryParam = DBNull.Value;
                object datasheetParam = DBNull.Value;
                object imageParam = DBNull.Value;
                object ownerIdParam = DBNull.Value;
                object resIdParam = DBNull.Value;
                object serieNrParam = DBNull.Value;

                using (SqlCommand cmd = new SqlCommand(insertStringParam, _conn))
                {
                    // Get your parameters ready 
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data1";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data2";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data3";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data4";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data5";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data6";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data7";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data8";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data9";
                    cmd.Parameters["@Data1"].Value = cp.ComponentNumber;
                    cmd.Parameters["@Data2"].Value = cp.SerieNr ?? serieNrParam;
                    cmd.Parameters["@Data3"].Value = cp.ComponentName;
                    // Hvis parameterne er null, så brug DBNULL.Value.
                    cmd.Parameters["@Data4"].Value = cp.ComponentInfo ?? componentInfoParam;
                    cmd.Parameters["@Data5"].Value = cp.Category ?? categoryParam;
                    cmd.Parameters["@Data6"].Value = cp.Datasheet ?? datasheetParam;
                    cmd.Parameters["@Data7"].Value = cp.Image ?? imageParam;
                    cmd.Parameters["@Data8"].Value = cp.OwnerID != 0 ? cp.OwnerID : ownerIdParam;
                    cmd.Parameters["@Data9"].Value = cp.ReservationID != 0 ? cp.ReservationID : resIdParam;


                    //var id 
                    cp.ComponentID = (int)cmd.ExecuteScalar(); //Returns the identity of the new tuple/record

                    //hv.HID = (int)cmd.ExecuteNonQuery(); //Does not workReturns row affected and not the identity of the new tuple/record

                    CurrentComponent = cp;
                    var loanInfo = new LoanInformation();
                    var loan = new LoanDataUtil();
                    loan.CreateLoanInformation(loanInfo, cp);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return false;
            }

            finally
            {
                // Close the connection
                if (_conn != null)
                {
                    _conn.Close();
                }
            }

            return true;
        }
        // bool CreateComponent(Component cp)

        public bool CreateComponent(Component cp)
        {
            try
            {
                // Open the connection
                _conn.Open();

                // prepare command string using paramters in string and returning the given identity

                string insertStringParam =
                    @"INSERT INTO [Component] (ComponentNumber, SerieNr, ComponentName, ComponentInfo, Category, Datasheet, Image, OwnerID, ReservationID)
                                                    OUTPUT INSERTED.ComponentID
                                                VALUES (@Data1, @Data2,@Data3,@Data4,@Data5,@Data6,@Data7,@Data8, @Data9)";
                //Alternative //    ; SELECT SCOPE_IDENTITY()";

                object componentInfoParam = DBNull.Value;
                object categoryParam      = DBNull.Value;
                object datasheetParam     = DBNull.Value;
                object imageParam         = DBNull.Value;
                object ownerIdParam       = DBNull.Value;
                object resIdParam         = DBNull.Value;
                object serieNrParam       = DBNull.Value;

                using (SqlCommand cmd = new SqlCommand(insertStringParam, _conn))
                {
                    // Get your parameters ready
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data1";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data2";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data3";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data4";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data5";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data6";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data7";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data8";
                    cmd.Parameters.Add(cmd.CreateParameter()).ParameterName = "@Data9";
                    cmd.Parameters["@Data1"].Value = cp.ComponentNumber;
                    cmd.Parameters["@Data2"].Value = cp.SerieNr ?? serieNrParam;
                    cmd.Parameters["@Data3"].Value = cp.ComponentName;
                    // Hvis parameterne er null, så brug DBNULL.Value.
                    cmd.Parameters["@Data4"].Value = cp.ComponentInfo ?? componentInfoParam;
                    cmd.Parameters["@Data5"].Value = cp.Category ?? categoryParam;
                    cmd.Parameters["@Data6"].Value = cp.Datasheet ?? datasheetParam;
                    cmd.Parameters["@Data7"].Value = cp.Image ?? imageParam;
                    cmd.Parameters["@Data8"].Value = cp.OwnerID != 0 ? cp.OwnerID : ownerIdParam;
                    cmd.Parameters["@Data9"].Value = cp.ReservationID != 0 ? cp.ReservationID : resIdParam;


                    //var id
                    cp.ComponentID = (int)cmd.ExecuteScalar(); //Returns the identity of the new tuple/record

                    //hv.HID = (int)cmd.ExecuteNonQuery(); //Does not workReturns row affected and not the identity of the new tuple/record

                    CurrentComponent = cp;
                    var loanInfo = new LoanInformation();
                    var loan     = new LoanDataUtil();
                    loan.CreateLoanInformation(loanInfo, cp);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(false);
            }

            finally
            {
                // Close the connection
                if (_conn != null)
                {
                    _conn.Close();
                }
            }

            return(true);
        }