Skip to content

Commit

Permalink
Automatisation des opérations et transferts
Browse files Browse the repository at this point in the history
Ajout des premiers éléments de la documentation
  • Loading branch information
pantaflex44 committed Jul 1, 2021
1 parent a6ad746 commit 3d74fd2
Show file tree
Hide file tree
Showing 18 changed files with 3,169 additions and 103 deletions.
30 changes: 22 additions & 8 deletions Kotlib.test/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Kotlib.Objects;
Expand Down Expand Up @@ -70,7 +71,7 @@ public static void Main(string[] args)
Phone = "0102030405"
},
Paytypes = new PaytypeList() { bc },
InitialAmount = 300.0d
InitialAmount = 300.0m
};

//###############################################################################################################
Expand All @@ -80,7 +81,7 @@ public static void Main(string[] args)
name: "Mon dossier financier",
owner: me,
accounts: new AccountList() { ba },
cultureName: "en_US",
cultureName: "fr_FR",
loadDefaults: true,
paytypes: new PaytypeList() { bc }
);
Expand All @@ -97,10 +98,11 @@ public static void Main(string[] args)
fi.Events.PostEventRemovedEvent += (postEvent) => Console.WriteLine("fi1 - Suppression de la programmation id {1}, '{0}'", postEvent.Name, postEvent.Id);
fi.PostRaisedEvent += (date, postEvent) =>
{
Console.WriteLine("fi1 - L'occurence '{0}' programmée pour le {1} sur le compte {2} vient dêtre postée.",
Console.WriteLine("fi1 - L'occurence '{0}' ({2}, {3}) programmée pour le {1} vient dêtre postée.",
postEvent.Name,
date.ToLongDateString(),
fi.Accounts.GetById(postEvent.AccountId).Name);
postEvent.EventAction.Name,
fi.Currency.Format(postEvent.EventAction.Amount));
Console.WriteLine("dates restantes: {0}",
string.Join(", ", postEvent.GetNextCalendar().Select(d => d.ToLongDateString())));
Console.WriteLine("prochaine date: {0} ({1}/{2} occurences restantes)\r\n",
Expand Down Expand Up @@ -139,8 +141,13 @@ public static void Main(string[] args)
// Création d'une nouvelle programmation
Console.WriteLine();
var p = new Event(name: "essai",
accountId: fi.Accounts[0].Id,
startDate: new DateTime(2021, 5, 12),
eventAction: new Operation(name: "Abonnement YouTube",
date: new DateTime(2021, 7, 5),
amount: -14m,
toId: ba.Id,
typeId: bc.Id,
categoryId: fi.Categories[0].Id,
active: true),
count: 4,
step: 1,
type: RepeatType.Month);
Expand Down Expand Up @@ -187,10 +194,11 @@ public static void Main(string[] args)
fi2.Events.PostEventRemovedEvent += (postEvent) => Console.WriteLine("fi2 - Suppression de la programmation id {1}, '{0}'", postEvent.Name, postEvent.Id);
fi2.PostRaisedEvent += (date, postEvent) =>
{
Console.WriteLine("fi2 - L'occurence '{0}' programmée pour le {1} sur le compte {2} vient dêtre postée.",
Console.WriteLine("fi2 - L'occurence '{0}' ({2}, {3}) programmée pour le {1} vient dêtre postée.",
postEvent.Name,
date.ToLongDateString(),
fi2.Accounts.GetById(postEvent.AccountId).Name);
postEvent.EventAction.Name,
fi2.Currency.Format(postEvent.EventAction.Amount));
Console.WriteLine("dates restantes: {0}",
string.Join(", ", postEvent.GetNextCalendar().Select(d => d.ToLongDateString())));
Console.WriteLine("prochaine date: {0} ({1}/{2} occurences restantes)\r\n",
Expand Down Expand Up @@ -252,6 +260,12 @@ public static void Main(string[] args)
Console.WriteLine("Culture système: {0} | Monnaie: {1} {2}", c.CultureFullname, c.Symbol, c.Name);
}









Console.ReadLine();
Expand Down
107 changes: 107 additions & 0 deletions Kotlib/Documentation/Les catégories.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
## Sommaire

* [Les catégories](https://github.com/pantaflex44/Kotlib.net/wiki/#les-catégories)
* [Liste des catégories](https://github.com/pantaflex44/Kotlib.net/wiki/#liste-des-cat%C3%A9gories)



## Les catégories

```c#
Kotlib.Objects.Category.cs
```

`Category` représente un conteneur spécifiant d'une part, le nom de la catégorie, mais aussi la liste des catégories enfants.

Les catégories peuvent être hiérarchisées à l'infini. Deux catégories peuvent porter le même nom si leur parent est différent.

```c#
Category(string name, CategoryList childs = null)
```



#### Propriétés

- `Childs` <small>*CategoryList*</small> : Liste des catégories enfants.
- `Id` <small>*Guid*</small> : Identifiant unique.
- `Name` <small>*string*</small> : Nom donné à la catégorie.



#### Utilisation

```c#
var abonnements = new Category(name: "Abonnements",
childs: new CategoryList(new List<Category>
{
new Category("TV"),
new Category("Musique"),
new Category("Téléphonie"),
new Category("Internet"),
new Category("Sport et Fitness"),
new Category("Divers")
})
);
```



## Liste des catégories

```c#
Kotlib.Objects.CategoryList.cs
```

`CategoryList` représente une liste de `Category`. Elle permet la gestion complète de cette liste, et possède des fonctionnalités qui lui sont propres.

`CategoryList` est dérivée de `ObjectList`.

```c#
CategoryList(IEnumerable<Category> items)
```



#### Propriétés

- `Count` <small>*int*</small> : Nombre de catégories dans la liste.
- `IsReadOnly` <small>*bool*</small> : Liste en lecture seule.
- `Items` <small>*List&lt;Category&gt;*</small> : Liste générique représentant la liste des catégories.
- ` Empty` <small>*CategoryList*</small> : Nouvelle liste vide.
- `Defaults` <small>*CategoryList*</small> : Liste des catégories par défaut incluses dans la librairie.
- <u>Abonnements</u> : TV, Musique, Téléphonie, Internet, Sport et Fitness, Divers
- <u>Véhicules</u> : Carburant, Assurance, Entretien, Réparation, Parking, Divers
- <u>Maison</u> : Loyer, Assurance, Electricité, Gaz, Eau, Internet, Courses, Participation, Divers
- <u>Revenus</u> : Salaire, Acompte, Don, Remboursement, Congés payés, Divers
- <u>Taxes</u> : Amende, Impôts
- <u>Divers</u> : Crédit, Remboursement, Don, Frais, Frais bancaire, Emprunt, Participation, Divers
- <u>Santé et bien être</u> : Médecin, Hôpital, Pharmacie, Médecine alternative, Coiffeur, Epilation, Massage et SPA, Sport et Fitness, Divers



#### Méthodes

- `void Add(Category item)` : Ajoute une nouvelle catégorie.
- `void Clear()` : Vide la liste des catégories.
- `bool Contains(T item)` : Retourne `true` si la catégorie existe, sinon, `false`.
- `void CopyTo(Category[] array, int arrayIndex)` : Copie une portion d'une liste de catégories à partir de la position `arrayIndex`.
- `IEnumerator<Category> GetEnumerator()` : Retourne un énumérateur.
- `IEnumerator IEnumerable.GetEnumerator()` : Retourne un énumérateur.
- `int IndexOf(Category item)` : Retourne la position d'une catégorie dans la liste.
- `void Insert(int index, Category item)` : Insère une catégorie dans la liste à la position `index`.
- `bool Remove(Category item)` : Supprime une catégorie.
- `int RemoveAll(Predicate<Category> predicate)` : Supprime une ou plusieurs catégories en fonction des conditions `Linq` représentées par `predicate`. Retourne le nombre de catégories supprimées.
- `void RemoveAt(int index)` : Supprime une catégorie à la position `index`.
- `Category GetById(Guid id)` : Retourne une catégorie associée à l'identifiant unique `id` passé en paramètre.



#### Evénements

- `event CategoryEventHandler CategoryAddedEvent` : Se produit lorsqu'une catégorie a été ajoutée à la liste.
- `event CategoryEventHandler CategoryUpdatedEvent` : Se produit lorsqu'une catégorie a été modifiée.
- `event CategoryEventHandler CategoryRemovedEvent` : Se produit lorsqu'une catégorie a été supprimée



Loading

0 comments on commit 3d74fd2

Please sign in to comment.