refactoring the haircut messaging

This commit is contained in:
Paul Schneider 2017-06-02 21:34:18 +02:00
commit 8ec60de3f3
12 changed files with 199 additions and 80 deletions

View file

@ -6,6 +6,10 @@ using System.ComponentModel.DataAnnotations.Schema;
using Yavsc.Models.Billing;
using Yavsc.Models.Relationship;
using Yavsc.Billing;
using System.Globalization;
using Yavsc.Helpers;
using Yavsc.Models.Messaging;
using System.Linq;
namespace Yavsc.Models.Haircut
{
@ -337,5 +341,33 @@ Prestation.Gender == HairCutGenders.Women ?
public virtual BrusherProfile SelectedProfile { get; set; }
public HairCutQueryEvent CreateEvent(string subTopic, string reason, string sender, string message) {
string evdate = EventDate?.ToString("dddd dd/MM/yyyy à HH:mm")??"[pas de date spécifiée]";
string address = Location?.Address??"[pas de lieu spécifié]";
var p = Prestation;
string total = GetBillItems().Addition().ToString("C",CultureInfo.CurrentUICulture);
string strprestation = GetDescription();
string bill = string.Join("\n", GetBillItems().Select(
l=> $"{l.Name} {l.Description} {l.UnitaryCost} € " +
((l.Count != 1) ? "*"+l.Count.ToString() : "")));
var yaev = new HairCutQueryEvent(subTopic)
{
Client = new ClientProviderInfo { 
UserName = Client.UserName ,
UserId =ClientId,
Avatar = Client.Avatar } ,
Previsional = Previsional,
EventDate = EventDate,
Location = Location,
Id = Id,
ActivityCode = ActivityCode,
Reason = reason,
Sender = sender,
Message = message
};
return yaev;
}
}
}

View file

@ -4,11 +4,11 @@ namespace Yavsc.Models.Haircut
{
public class HairCutQueryEvent : RdvQueryProviderInfo, IEvent
{
public HairCutQueryEvent()
public HairCutQueryEvent(string subTopic)
{
Topic = "HairCutQuery";
}
Topic = GetType().Name+"/"+subTopic;
}
public string Message
{
get;
@ -27,9 +27,9 @@ namespace Yavsc.Models.Haircut
{
get;
set;
private set;
}
HairCutQuery Data { get; set; }
}
}
}

View file

@ -19,15 +19,13 @@
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System.ComponentModel.DataAnnotations;
namespace Yavsc.Models.Messaging
{
using Interfaces.Workflow;
using Yavsc;
/// <summary>
/// Base event.
/// /// Base event.
/// </summary>
public class BaseEvent : IEvent {
@ -37,29 +35,12 @@ namespace Yavsc.Models.Messaging
}
public BaseEvent(string topic)
{
Topic = topic;
Topic = GetType().Name+"/"+topic;
}
public string Topic { get; set; }
public string Topic { get; private set; }
public string Sender { get; set; }
public string Message { get; set; }
}
public class GeneralEvent: BaseEvent, ITitle
{
/// <summary>
/// The title.
/// </summary>
[Required(ErrorMessageResourceName="ChooseATitle")]
[Display(Name="Title")]
public string Title { get; set; }
/// <summary>
/// The description.
/// </summary>
[Required(ErrorMessageResourceName="ChooseADescription")]
[Display(Name="Description")]
public string Description { get; set; }
}
}

View file

@ -0,0 +1,43 @@
//
// BaseEvent.cs
//
// Author:
// Paul Schneider <paul@pschneider.fr>
//
// Copyright (c) 2015 GNU GPL
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System.ComponentModel.DataAnnotations;
namespace Yavsc.Models.Messaging
{
public class GeneralEvent: BaseEvent, ITitle
{
/// <summary>
/// The title.
/// </summary>
[Required(ErrorMessageResourceName="ChooseATitle")]
[Display(Name="Title")]
public string Title { get; set; }
/// <summary>
/// The description.
/// </summary>
[Required(ErrorMessageResourceName="ChooseADescription")]
[Display(Name="Description")]
public string Description { get; set; }
}
}

View file

@ -27,9 +27,10 @@ using Interfaces.Workflow;
public class RdvQueryEvent: RdvQueryProviderInfo, IEvent
{
public RdvQueryEvent()
public RdvQueryEvent(string subTopic)
{
Topic = "RdvQuery";
Topic = GetType().Name+"/"+subTopic;
}
public string Message
@ -44,7 +45,7 @@ public class RdvQueryEvent: RdvQueryProviderInfo, IEvent
public string Topic
{
get; set;
get; private set;
}
}