private MasterEntity GetOutletPriorityEntity(MasterBaseDTO masterBase)
 {
     OutletPriorityDTO dto = masterBase as OutletPriorityDTO;
     OutletPriority entity = new OutletPriority(masterBase.MasterId, masterBase.DateCreated, masterBase.DateLastUpdated, (EntityStatus)masterBase.StatusId);
     entity.EffectiveDate = dto.EffectiveDate;
     entity.Outlet = new CostCentreRef {Id = dto.OutletMasterId};
     entity.Priority = dto.Priority;
     entity.Route = _routeRepository.GetById(dto.RouteMasterId);
     return entity;
 }
         protected Guid CreateOutletPriority(Guid outletId, Guid route, int priority)
         {
             OutletPriority p = new OutletPriority(Guid.NewGuid())
                                    {
                                        EffectiveDate=DateTime.Now.AddDays(-1),
                                        Outlet= new CostCentreRef{ Id=outletId},
                                        Route=_routeRepository.GetById(route),
                                        Priority=priority

                                    };
             return _outletPriorityRepository.Save(p);
         }
 public OutletPriorityDTO Map(OutletPriority priority)
 {
     if (priority == null)
         return null;
     return Mapper.Map<OutletPriority, OutletPriorityDTO>(priority);
 }
        public HttpResponseMessage OutletPriorityAdd(List<OutletPriorityItem> outletPriorityItems)
        {
            var response = new ResponseBool {Success = false};
            using (TransactionScope scope = TransactionUtils.CreateTransactionScope())
            {
                try
                {
                    foreach (var outletPriorityItem in outletPriorityItems)
                    {
                        Guid id = outletPriorityItem.MasterId;
                        OutletPriority existing = _outletPriorityRepository.GetById(id, true);
                        if (existing != null)
                            id = existing.Id;

                        var item = new OutletPriority(id)
                                       {
                                           Priority = outletPriorityItem.Priority,
                                           Route = _routeRepository.GetById(outletPriorityItem.RouteId),
                                           Outlet = new CostCentreRef() {Id = outletPriorityItem.OutletId},
                                           EffectiveDate = outletPriorityItem.EffectiveDate,
                                           _Status = (EntityStatus) outletPriorityItem.StatusId,
                                           _DateCreated = outletPriorityItem.DateCreated,
                                           _DateLastUpdated = outletPriorityItem.DateLastUpdated,
                                       };

                        _outletPriorityRepository.Save(item);
                    }
                    response.Success = true;
                    response.ErrorInfo = "Successfully saved outlet priority";
                    scope.Complete();
                }
                catch (DomainValidationException dve)
                {
                    string errorMsg = dve.ValidationResults.Results.Aggregate(
                        "Error: Invalid outlet priority fields.\n",
                        (current, msg) =>
                        current + ("\t- " + msg.ErrorMessage + ".\n"));
                    response.ErrorInfo = errorMsg;
                    _log.Error(errorMsg, dve);
                }
                catch (Exception ex) //any other
                {
                    response.ErrorInfo = "Error: An error occurred when saving the outlet priority.";
                    _log.Error("Error: An error occurred when saving the outlet priority.", ex);
                }
            }
            return Request.CreateResponse(HttpStatusCode.OK, response);
        }