示例#1
0
文件: MemberDAL.cs 项目: fumg/1DV607
 /// <summary>
 /// Deletes a member.
 /// </summary>
 /// <param name="recipe">The recipe to delete. The value can be null.</param>
 public virtual void Delete(Member member)
 {
     // If it's a copy of a member...
     if (!_memberRepository.Contains(member))
     {
         // ...try to find the original!
         member = _memberRepository.Find(m => m.Equals(member));
     }
     _memberRepository.Remove(member);
 }
示例#2
0
文件: MemberDAL.cs 项目: fumg/1DV607
 /// <summary>
 /// Adds member to member repository
 /// </summary>
 /// <param name="member"></param>
 public void Add(Member member)
 {
     _memberRepository.Add(member);
 }
示例#3
0
 /// <summary>
 /// Views a verbose info of spec. member (name, first- & last name, personal no. and boat info)
 /// </summary>
 /// <param name="members"></param>
 public void viewMemberVerbose(Member member)
 {
     ShowMessage(String.Format("ID:{0}\nName:{1} {2}\n{3}\n\n",
                               member.ID, member.FirstName, member.LastName, member.PersonalNumber));
     _boatView.viewBoats(member.Boats);
 }
示例#4
0
文件: MemberDAL.cs 项目: fumg/1DV607
        /// <summary>
        /// Loads member info from text file, saves to member repository
        /// and returns it as readonlycollection
        /// </summary>
        /// <returns>_memberReository (as readonly)</returns>
        public IReadOnlyCollection<Member> LoadMemberData()
        {
            using (StreamReader listreader = new StreamReader(_path))
            {
                List<Member> members = new List<Member>();
                Member member = null;
                Boat boat = null;
                string line;
                MemberReadStatus status = MemberReadStatus.Other;

                while ((line = listreader.ReadLine()) != null)
                {
                     switch (line)
                    {
                        case "":
                            continue;

                        case sectionMember:
                            status = MemberReadStatus.NewMember;
                            break;

                        case sectionID:
                            status = MemberReadStatus.ID;
                            continue;

                        case sectionName:
                            status = MemberReadStatus.Name;
                            continue;

                        case sectionPersonalNumber:
                            status = MemberReadStatus.PersonalNumber;
                            continue;

                        case sectionBoat:
                            status = MemberReadStatus.NewBoat;
                            break;

                        case sectionLength:
                            status = MemberReadStatus.Length;
                            continue;

                        case sectionType:
                            status = MemberReadStatus.Type;
                            continue;
                    }

                    switch (status)
                    {
                        case MemberReadStatus.NewMember:
                            member = new Member();
                            members.Add(member);
                            continue;

                        case MemberReadStatus.ID:
                            member.ID = line;
                            continue;

                        case MemberReadStatus.Name:
                            string[] names = line.Split(new char[] { ';' });
                            if (names.Length < 2)
                            {
                                throw new FormatException();
                            }
                            member.FirstName = names[0];
                            member.LastName = names[1];
                            continue;

                        case MemberReadStatus.PersonalNumber:
                            member.PersonalNumber = line;
                            continue;

                        case MemberReadStatus.NewBoat:
                            boat = new Boat();
                            member.add(boat);
                            continue;

                        case MemberReadStatus.Length:
                            string[] length = line.Split(new char[] { ';' });

                                boat.Length = double.Parse(length[0]);

                            continue;

                        case MemberReadStatus.Type:

                            foreach (Boat.Type t in Enum.GetValues(typeof(Boat.Type)))
                            {
                                if (Enum.GetName(typeof(Boat.Type),t) == line)
                                {
                                    boat.BoatType = t;
                                }
                            }
                            continue;
                        }
                      }

                members.TrimExcess();
                members = members.OrderBy(m => m.ID).ToList();
                _memberRepository = members;

                return members.AsReadOnly();
            }
        }
示例#5
0
 /// <summary>
 /// Adds member to repository, save current state.
 /// </summary>
 /// <param name="member"></param>
 private void saveMember(Member member)
 {
     _memberDAL.Add(member);
     _memberDAL.Save();
 }
示例#6
0
 /// <summary>
 /// Views a compact info of specific member (name, first- & last name, personal no., no. of boats)
 /// </summary>
 /// <param name="members"></param>
 public void viewMemberCompact(Member member)
 {
     ShowMessage(string.Format("ID:{0}\nName:{1} {2}\n{3}\n\nNo. of boats:{4}\n",
                               member.ID, member.FirstName, member.LastName, member.PersonalNumber, member.getNumberOfBoats()));
 }
示例#7
0
 /// <summary>
 /// Deletes boat from member, create new boat info.
 /// </summary>
 /// <param name="member"></param>
 private void editBoat(Member member)
 {
     //Delete the current info about the boat
     deleteBoat(member);
     //add new boat info and save!
     addBoat(member);
 }
示例#8
0
 /// <summary>
 /// Delete member fom repository, save currents state.
 /// </summary>
 /// <param name="member"></param>
 private void editMemberInfo(Member member)
 {
     //Delete the current info about the info
     _memberDAL.Delete(member);
     //create new user info
     createMember();
 }
示例#9
0
 /// <summary>
 /// Delete current member info, choose boat by index
 /// using view, remove and save.
 /// </summary>
 /// <param name="member"></param>
 private void deleteBoat(Member member)
 {
     //Delete the current info about the member
     _memberDAL.Delete(member);
     //choose the boat to remove..
     Boat b = chooseBoat(member);
     //remove it and save!
     member.remove(b);
     saveMember(member);
 }
示例#10
0
 /// <summary>
 /// Presents boats using and get user to choose boat by index
 /// using view.
 /// </summary>
 /// <param name="member"></param>
 /// <returns>Boat (by index)</returns>
 private Boat chooseBoat(Member member)
 {
     //Present all boats...
     _editUpdateMenu.showBoats(member);
     //and get user to choose boat.
     int index = _editUpdateMenu.getIndexFomInput();
     return member.Boats.ElementAt(index);
 }
示例#11
0
 /// <summary>
 /// Create boat, get boat info using view, add to member and save it.
 /// </summary>
 /// <param name="member"></param>
 private void addBoat(Member member)
 {
     //Create new boat..
     Boat b = new Boat();
     double length;
     //Delete the current info about the member
     _memberDAL.Delete(member);
     //Get the type of the boat, set it to new boat.
     Boat.Type boatType = _editUpdateMenu.chooseBoatType();
     //Get the length of the boat, set it to new boat.
     string lengthInput = _editUpdateMenu.getStrInput(messages.inputLength);
     try
     {
         double.TryParse(lengthInput, out length);
         b.BoatType = boatType;
         b.Length = length;
         //add boat to the member.
         member.add(b);
         //save member
         saveMember(member);
         _editUpdateMenu.ShowMessage(messages.boatCreated);
     }
     catch (Exception)
     {
         _editUpdateMenu.ShowMessage(messages.invalidInput);
     }
 }
示例#12
0
 /// <summary>
 /// Delete current member info, choose boat by index
 /// using view, remove and save.
 /// </summary>
 /// <param name="member"></param>
 private void deleteBoat(Member member)
 {
     //Delete the current info about the member
     _memberDAL.Delete(member);
     if (member.getNumberOfBoats() > 0)
     {
         //choose the boat to remove..
         Boat boat = chooseBoat(member);
         //remove it and save!
         member.remove(boat);
         saveMember(member);
     }
     _editUpdateMenu.ShowMessage(messages.returnStr);
     goBack();
 }
示例#13
0
        /// <summary>
        /// Presents list of boats to user.
        /// </summary>
        /// <param name="member"></param>
        internal void showBoats(Member member)
        {
            ShowMessage(messages.chooseBoat,true);

            int i = -1;
            foreach (Boat b in member.Boats)
            {
                i++;
                ShowMessage(string.Format("{0}.{1}", i,b.ToString()));
            }
        }