Example #1
0
        private PublishOfferResult PublishOfferInternal(PublishOfferModel model)
        {
            var result = new PublishOfferResult();

            var context = new BloodSearchContext();
            var offer   = context.Offers.Single(x => x.Id == model.OfferId);

            result.ErrMessages = ValidatePublishOfferModel(model, offer);

            if (result.ErrMessages.Any())
            {
                result.Success = false;
                return(result);
            }

            offer.State               = OfferStateEnum.Published;
            offer.RowChangedDate      = DateTime.Now;
            offer.RowProcessingStatus = RowProcessingStatusEnum.Processed;

            context.SaveChanges();
            context.Entry(offer).State = System.Data.Entity.EntityState.Detached;

            result.Success = true;
            return(result);
        }
Example #2
0
        public static PublishOfferResult PublishOffer(PublishOfferModel model)
        {
            var url   = $"{SchemeAndHost}/api/offers/publish-offer";
            var jData = JsonConvert.SerializeObject(model);

            return(ApiProvider.ExecutePostSync <PublishOfferResult>(url, jData));
        }
Example #3
0
 public PublishOfferResult Publishffer(PublishOfferModel model)
 {
     return(Retry.Do(() => this.PublishOfferInternal(model)));
 }
Example #4
0
        private static List <KeyValuePair <string, string> > ValidatePublishOfferModel(PublishOfferModel model, Offer offer)
        {
            var result = new List <KeyValuePair <string, string> >();

            if (!model.IsAdmin && model.UserId != offer.UserId)
            {
                result.Add(new KeyValuePair <string, string>("wrong user", "указанный пользователь не совпадает"));
            }

            return(result);
        }